我有一台服务器,我从来不登录 X 显示器,只通过 ssh 登录。最近我登录时,它告诉我我已
12 packages can be updated.
6 updates are security updates.
我其实已经知道了,因为我在它和所有其他服务器上都运行了 munin。所以无论如何,我执行了“sudo aptitude”并安装了所有更新,然后重新启动。几天后,munin 告诉我需要升级另一个软件包,所以我登录了,但登录消息显示:
12 packages can be updated.
6 updates are security updates.
我进入 aptitude 并安装了一个更新。Ubuntu 仍然告诉我有 12 个软件包需要更新。Munin 告诉我我没有任何软件包。我试过了,aptitude -d -y dist-upgrade
它们apt-get -d -y dist-upgrade
都告诉我没有要安装的软件包。那么为什么登录信息仍然告诉我有 12 个软件包需要更新?
答案1
它是启动脚本中的错误,在 Natty 中已修复,它将 的当前状态复制motd
到/etc/motd.tail
。motd
在您启动时会动态生成,但是motd.tail
静态的(允许系统管理员为所有用户在那里放置一些固定信息)。
删除motd.tail
将暂时解决问题,但更好的解决方案是创建一个空的motd.tail
。如果文件不存在,则initscripts
升级时可能会再次(错误地)创建它。
创建一个空motd.tail
的
sudo touch /etc/motd.tail
答案2
问题似乎在于其逻辑, 即根据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 个更新,尽管只有上帝知道在有可用更新时它是否会显示正确的数字。
答案3
我最近在 Serverfault 上回答过类似的问题:
ubuntu 服务器:SSH 横幅提示更新软件包,但没有任何内容可更新
你所说的横幅叫做 MOTD(每日讯息)。它似乎是一个错误可以通过删除文件来解决这个问题/etc/motd.tail
。
答案4
我在 10.04.2 上遇到了同样的问题。
# aptitude install update-motd
Selecting previously deselected package update-motd.
(Reading database ... 36453 files and directories currently installed.)
Unpacking update-motd (from .../update-motd_3.5-0ubuntu1_all.deb) ...
Removing any system startup links for /etc/init.d/update-motd ...
Setting up update-motd (3.5-0ubuntu1) ...
但之后没有 update-motd 命令行工具,而且我找不到有关 pam_motd 的任何信息。
删除/etc/motd
后消息就消失了,但是显然安全升级应该已经完成了这个操作。