Обновить доступное сообщение после установки обновления


23

Я только что обновил свой HTPC до 13.04 (используя do-release-upgrade), и при входе в систему я получаю сообщение «доступен новый выпуск», хотя я не обновил и не запустил эту версию.

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.

Так что я на 13.04, но я могу обновить до 13.04. Похоже на план. Или не.

Я сделал apt-get updateи upgrade(ничего нового) и перезагрузил машину. Почему это сообщение все еще здесь, и что нужно исправить, чтобы оно исчезло?

Для получения дополнительной информации, возможно:

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

Ответы:


34

Похоже, виновник /etc/update-motd.d/91-release-upgrade

Это звонки /usr/lib/ubuntu-release-upgrader/release-upgrade-motd

Этот файл проверяет файл /var/lib/ubuntu-release-upgrader/release-upgrade-available

Если это существует, оно идет в motd. Если это не так, он звонит /usr/lib/ubuntu-release-upgrader/check-new-release.

Эта последняя команда дает правильный результат, но файл по какой-то причине не был удален. Я удалил файл и перезапустил команды. Сообщение дня не было возвращено.

Таким образом, последняя проблема заключалась в том, что «кэш» «необходимого обновления» не был очищен.

Я удалил этот файл, и он был исправлен, ничего не нарушая :)

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

Это было обновление 12.10 -> 13.04. На другой моей коробке (12.04 LTS, с той же проблемой) мне пришлось искать в другом месте:

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

Использовал этот метод, и он работал. Не могу принять, пока не закончится 2 дня :)
Nanne

Спасибо за это тщательное расследование. Для уточнения: выполнение с sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-availableпоследующим sudo /usr/lib/ubuntu-release-upgrader/release-upgrade-motdисправлением устаревшего сообщения.
natevw

2
Вам не нужно (или даже хотеть) удалить этот второй! Это скрипт, который проверяет наличие новых обновлений (но только если он не нашел их ранее и не сохранил). Так что /var/lib/я думаю, что нужно удалить только один из них .
Nanne

Снимите флажок release-upgrade-available и снова запустите сценарий release-upgrade-motd.
natevw

1
Просто к вашему сведению, похоже, есть сообщения об ошибках - вот один . Похоже, есть исправление для 13.10.
thegrinner

4

если вы откроете файл /etc/update-motd.d/91-release-upgrade, внутри вы увидите, что вызывает bash /usr/lib/ubuntu-release-upgrader/release-upgrade-motd. Когда вы открываете этот файл внутри, мы находим этот код:

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

переменная штампа заполняется /var/lib/ubuntu-release-upgrader/release-upgrade-availableфайлом, если он существует, или если он пуст, иначе он проверяет, существует ли новый выпуск. в , /var/lib/ubuntu-release-upgrader/release-upgrade-availableесли открыть в текстовом редакторе ( nano, vi...) вы найдете только сообщение , что есть новая версия Ubuntu, так что если вы очищаете что или удалить вы вынуждаете , чтобы проверить, есть ли новая версия.

Я надеюсь, что объяснил и извините за мой плохой английский.


1

попробуйте, чтобы у sudo apt-get dist-upgrade
вас было это сообщение в этом файле. /etc/motd
Если вы в курсе, вы можете запустить sodo rm /etc/motd<- edit, если у вас есть текст приветствия


Ну, это на motdсамом деле (как это motd), но разве это не обман? система считает, что у нее есть обновление по какой-то причине, я хотел бы выяснить, почему
Nanne

если 1-я команда не находит обновлений даже после запуска sudo apt-get updateи lsb_release -scсообщает, что raringвы обновляетесь, и сообщение неверное, поэтому его следует удалить
GM-Script-Writer-62850

Я согласен. Я просто не согласен с вашим методом удаления motd;)
Nanne

+1 за указание на motd, но не полный ответ, потому что он вернулся бы, если бы я просто удалил это.
Нанн

0

Я сделал следующее:

  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. Выход / Вход

MOTD вернулся к нормальной жизни.

Вероятно, то же самое, что и выше, но я не люблю удалять вещи, не зная полностью последствий. Я просто оставлю этот файл там и подожду, когда 13.10 предложит обновить в октябре. Как только я знаю, что это работает, я удаляю файл .old (или нет, это действительно ничего не вредит).


файл является флагом, нет необходимости делать это вообще.
Нанне

0

Сейчас выпущено исправление, просто запустите sudo aptitude update && sudo aptitude full-upgradeи сообщение будет удалено.


Разве это не обновляет всю вашу систему? Это звучит немного глупо :) В любом случае, этот вопрос был о том, что делать, если сообщение не исчезло. Приятно знать, что это, вероятно, не будет снова жестким, но это может быть лучше в качестве комментария?
Нанн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.