Zaktualizuj dostępny komunikat po zainstalowaniu aktualizacji


23

Właśnie zaktualizowałem mój HTPC do 13.04 (za pomocą do-release-upgrade) i podczas logowania pojawia się komunikat „dostępna nowa wersja”, podczas gdy nie ma go, ponieważ właśnie zaktualizowałem i uruchomiłem tę wersję.

me@mybox: ~$ssh htpc
me@htpc's password: 
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic i686)

 * Documentation:  https://help.ubuntu.com/

New release '13.04' available.
Run 'do-release-upgrade' to upgrade to it.

Mam 13.04, ale mogę uaktualnić do 13.04. Brzmi jak plan. Albo nie.

Zrobiłem apt-get updatei upgrade(nie było nic nowego) i ponownie uruchomiłem maszynę. Dlaczego ta wiadomość wciąż tu jest i co wymaga naprawy, aby zniknęła?

Aby uzyskać więcej informacji, może:

htpc:~$ uname -a
Linux HTPC 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:19:42 UTC 2013 i686 athlon i686 GNU/Linux

Odpowiedzi:


34

Wygląda na winowajcę /etc/update-motd.d/91-release-upgrade

To wzywa /usr/lib/ubuntu-release-upgrader/release-upgrade-motd

Ten plik sprawdza plik /var/lib/ubuntu-release-upgrader/release-upgrade-available

Jeśli to istnieje, trafia do motd. Jeśli nie, dzwoni /usr/lib/ubuntu-release-upgrader/check-new-release.

To ostatnie polecenie daje właściwy wynik, ale z jakiegoś powodu plik nie został usunięty. Usunąłem plik i ponownie uruchomiłem polecenia. Wiadomość dnia nie została odłożona.

Ostatnim problemem było to, że „pamięć podręczna” „wymaganej aktualizacji” nie została wyczyszczona.

Usunąłem ten plik i został on naprawiony bez zerwania czegokolwiek :)

sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-available

To była aktualizacja 12.10 -> 13.04. Na moim drugim pudełku (12.04 LTS, mając ten sam problem) musiałem szukać w innym miejscu:

sudo rm /var/lib/update-notifier/release-upgrade-available

Użyłem tej metody i zadziałało. Nie można zaakceptować do końca 2 dni :)
Nanne

Dzięki za to dokładne dochodzenie. Wyjaśnienie: zrobienie, sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-availablea następnie sudo /usr/lib/ubuntu-release-upgrader/release-upgrade-motdnaprawienie przestarzałej wiadomości.
natevw

2
Nie powinieneś (a nawet nie chcesz) usuwać tego drugiego! Jest to skrypt, który sprawdza dostępność nowych aktualizacji (ale tylko jeśli nie znalazł go wcześniej i nie zapisał). Tak więc /var/lib/myślę, że należy usunąć tylko jedną z nich .
Nanne

Tak, usuń „flagę” dostępną do wydania i uruchom ponownie skrypt release-upgrade-motd.
natevw

1
Po prostu FYI, wydaje się, że są w nim zgłaszane błędy - oto jeden . Wygląda na to, że wprowadzono poprawkę do 13.10.
thegrinner

4

jeśli otworzysz plik /etc/update-motd.d/91-release-upgrade, w środku zobaczysz, że wywołuje bash /usr/lib/ubuntu-release-upgrader/release-upgrade-motd. Po otwarciu tego pliku w środku znajduje się następujący kod:

stamp=/var/lib/ubuntu-release-upgrader/release-upgrade-available
if [ -s "$stamp" ]; then
        # Stamp exists and is populated, so display
        cat "$stamp"
        echo
elif [ -f "$stamp" ]; then
        # Stamp exists, but is empty, see if it's expired
        now=$(date +%s)
        lastrun=$(stat -c %Y "$stamp") 2>/dev/null || lastrun=0
        expiration=$(expr $lastrun + 86400)
        if [ $now -ge $expiration ]; then
                # But is older than 1 day old, so update in the background
                /usr/lib/ubuntu-release-upgrader/check-new-release -q > "$stamp$
        fi
else
        # No cache at all, so update in the background
        /usr/lib/ubuntu-release-upgrader/check-new-release -q > "$stamp" &
fi

zmienna znaczka jest popularna według /var/lib/ubuntu-release-upgrader/release-upgrade-availablepliku, jeśli istnieje lub jeśli jest pusta, w przeciwnym razie sprawdza, czy istnieje nowa wersja. w, /var/lib/ubuntu-release-upgrader/release-upgrade-availablejeśli otworzysz za pomocą edytora tekstu ( nano, vi...), zobaczysz tylko wiadomość, że jest nowa wersja Ubuntu, więc jeśli ją opróżnisz lub usuniesz, wymuś sprawdzenie, czy jest nowa wersja.

Mam nadzieję, że wyjaśniłem i przepraszam za mój zły angielski.


1

spróbuj sudo apt-get dist-upgrade
mieć tę wiadomość w tym pliku /etc/motd
Jeśli jesteś na bieżąco, możesz uruchomić sodo rm /etc/motd<- edit, jeśli masz niestandardowy tekst powitalny


Cóż, tak motdnaprawdę jest (jak to jest motd), ale czy to nie byłoby oszustwo? system wierzy, że z jakiegoś powodu ma aktualizację, chciałbym dowiedzieć się, dlaczego
Nanne

jeśli 1st komenda nie znajdzie aktualizacje nawet po uruchomieniu sudo apt-get updatei lsb_release -scdaje raringjesteś aktualizacja i wiadomość jest nieprawidłowy dlatego powinny być usunięte
GM-scenarzystą-62850

Zgadzam się. Po prostu nie zgadzam się z twoją metodą usuwania motd;)
Nanne

+1 za wskazanie mi motd, ale nie pełną odpowiedź, ponieważ wróciłbym, gdybym to po prostu usunął.
Nanne

0

Zrobiłem następujące:

  1. cd /var/lib/ubuntu-release-upgrader/
  2. mv release-upgrade-available release-upgrade-available.old
  3. cd /usr/lib/ubuntu-release-upgrader/
  4. ./check-new-release
  5. Wyloguj się / zaloguj

MOTD wrócił do normy.

Prawdopodobnie to samo co powyżej, ale nie lubię usuwania rzeczy bez pełnej wiedzy o konsekwencjach. Zostawię tam ten plik i poczekam, aż 13.10 poprosi o aktualizację w październiku. Gdy się dowiem, że to działa, usunę plik .old (lub nie, to naprawdę nic nie rani).


plik jest flagą, w ogóle nie trzeba tego robić.
Nanne

0

Jest teraz poprawka wydana, po prostu uruchom, sudo aptitude update && sudo aptitude full-upgradea wiadomość zostanie usunięta.


Czy to nie aktualizuje całego systemu? Brzmi to trochę głupio :) W każdym razie pytanie dotyczyło tego, co zrobić, jeśli wiadomość nie zniknie. Dobrze wiedzieć, że prawdopodobnie nie będzie lepka, ale może to być lepszy komentarz?
Nanne
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.