Я только что обновил свой 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
Похоже, виновником является /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
Если вы откроете файл /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, поэтому, если вы ее очистите или удалите, вы будете вынуждены проверить, есть ли это новый релиз.
Я надеюсь, что объяснил и извиняюсь за мой плохой английский.
Я сделал следующее:
cd /var/lib/ubuntu-release-upgrader/
mv release-upgrade-available release-upgrade-available.old
cd /usr/lib/ubuntu-release-upgrader/
./check-new-release
MOTD вернулся в нормальное состояние.
Вероятно, то же самое, что и выше, но я не люблю удалять вещи, не зная полностью последствий. Я просто оставлю этот файл там и подожду, когда 13.10 предложит обновить в октябре. Как только я узнаю, что это работает, я удаляю файл .old (или нет, это на самом деле ничего не ранит).
попробуйте sudo apt-get dist-upgrade
у вас может быть это сообщение в этом файле /etc/motd
Если вы в курсе, вы можете запустить sodo rm /etc/motd
< - редактировать, если вы иметь пользовательский текст приветствия
Сейчас выпущено исправление, просто запустите sudo aptitude update && sudo aptitude full-upgrade
, и сообщение будет удалено.