我刚刚将我的 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
答案1
看起来罪魁祸首是/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
如果你打开这个文件/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
如果文件存在则填充 stamp 变量/var/lib/ubuntu-release-upgrader/release-upgrade-available
,如果文件为空则检查是否存在新版本。/var/lib/ubuntu-release-upgrader/release-upgrade-available
如果您使用文本编辑器打开(nano
,vi
...),您会发现一条消息,提示 Ubuntu 有新版本,因此如果您清空该消息或删除该消息,则会强制检查是否有新版本。
我希望我已经解释清楚了,并且对我的糟糕英语表示抱歉。
答案3
尝试一下sudo apt-get dist-upgrade
,你可能在这个文件中有这条消息,/etc/motd
如果你是最新的,你可以运行sodo rm /etc/motd
<--编辑如果你有自定义的欢迎文本
答案4
现在已发布了修复程序,只需运行该修复程序sudo aptitude update && sudo aptitude full-upgrade
即可删除该消息。