安装更新后更新可用消息


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 updateand 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

Answers:


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-availablesudo /usr/lib/ubuntu-release-upgrader/release-upgrade-motd修复过时的消息。
natevw

2
您不需要(甚至不想)删除第二个!这是一个脚本,用于检查是否有新的升级(但前提是以前没有找到并保存过)。因此,/var/lib/我认为仅应删除其中一个。
Nanne 2013年

正确,删除release-upgrade-可用的“标志”,然后重新运行release-upgrade-motd脚本。
natevw

1
仅供参考,似乎确实有bug报告- 这是一个。好像有针对13.10的修复程序。
thegrinner 2013年

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如果存在,或者文件为空,则按文件填充stamp变量,否则检查是否存在新版本。在/var/lib/ubuntu-release-upgrader/release-upgrade-available你与文本编辑器打开(nanovi......),你会发现只是有Ubuntu的新版本的消息,因此,如果您清空该或删除您强制检查是否有新的版本。

我希望我能为我的英语不好解释并感到抱歉。


1

尝试sudo apt-get dist-upgrade
在此文件中包含该消息/etc/motd
如果您是最新的,则可以运行sodo rm /etc/motd<-编辑(如果您有自定义欢迎文本)


嗯,实际上是motd这样(因为它是花样),但这不是欺骗吗?系统认为它出于某种原因进行了更新,我想找出原因
Nanne13年

如果第一个命令即使在运行后仍未找到更新,sudo apt-get updatelsb_release -scraring您提供更新,并且消息不正确,则应将其删除
GM-Script-Writer-62850

我同意。我只是不同意您去除杂物的方法;)
杂物的

+1表示我想念motd,但还没有完整的答案,因为如果我将其删除,它将返回。
Nanne 2013年

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提示在10月进行升级。一旦我知道这是可行的,我将删除.old文件(或者不删除,它实际上没有任何伤害)。


该文件是一个标志,根本不需要这样做。
娜妮

0

现在有一个修复程序发布,可以运行sudo aptitude update && sudo aptitude full-upgrade并删除消息。


这不会更新您的整个系统吗?听起来有点傻:)无论如何,这个问题是关于如果消息没有消失该怎么办。很高兴知道它可能不会再发硬,但这作为评论可能会更好?
Nanne 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.