Ubuntu 告诉我我有软件包需要升级

Pau*_*lin 18 upgrade 10.04 aptitude

我有一台服务器机器,我从不登录 X 显示,只能通过 ssh。最近我登录,它告诉我我有

12 packages can be updated.
6 updates are security updates.
Run Code Online (Sandbox Code Playgroud)

我实际上已经知道这一点,因为我在它和所有其他服务器上运行 munin。所以无论如何,我做了“sudo aptitude”并安装了所有更新,然后重新启动。几天后,munin告诉我需要升级另一个包,所以我登录了,但是登录信息说:

12 packages can be updated.
6 updates are security updates.
Run Code Online (Sandbox Code Playgroud)

我进入 aptitude 并安装了一个更新。Ubuntu 仍然告诉我我有 12 个软件包需要更新。穆宁说我没有。我试着aptitude -d -y dist-upgradeapt-get -d -y dist-upgrade二者均告诉我没有什么可安装。那么为什么登录信息仍然告诉我我有 12 个包要更新?

Dav*_*ngs 10

这是initscripts 中的一个错误,在 Natty 中修复,它将当前状态复制motd/etc/motd.tailmotd无论何时启动都是动态生成的,但它motd.tail是静态的(允许系统管理员为所有用户放置一些固定信息)。

删除motd.tail将暂时解决问题,但更好的解决方案是创建一个空的motd.tail. 如果该文件不存在,则在initscripts升级时可能会再次(错误地)创建它。

创建一个空motd.tail

sudo touch /etc/motd.tail
Run Code Online (Sandbox Code Playgroud)

  • 我在 12.04.2 LTS 中看到了同样的问题,并且没有 `/etc/motd.tail` 文件;只是`/etc/motd`,其中包含有问题的文本。时间戳(“System information as of...”)是准确的,但可更新的包计数不准确。 (2认同)

Pau*_*lin 6

问题似乎在于根据时间戳和 sources.list 以及其他一些文件/usr/lib/update-notifier/update-motd-updates-available决定没有理由运行的逻辑 。/usr/lib/update-notifier/apt-check --human-readable/var/lib/update-notifier/updates-available

我不确定实际的错误是什么,但删除缓存文件至少将其重置为 0 个更新,尽管上帝只知道在有可用更新时它是否会显示正确的数字。


Lek*_*eyn 5

我最近在 Serverfault 上回答了一个类似的问题:

ubuntu 服务器:SSH 横幅告诉更新软件包但没有更新

您正在谈论的横幅称为 MOTD(今日消息)。这似乎是一个错误,可以通过删除/etc/motd.tail文件来解决。