当前位置: 首页>>技术教程>>正文


Ubuntu 告诉我有软件包需要升级,但实际上没有

, ,

问题描述

我有一台服务器机器,我从未登录到 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 个软件包需要更新。穆宁告诉我没有。我尝试了 aptitude -d -y dist-upgradeapt-get -d -y dist-upgrade,它们都告诉我没有什么可安装的。那么为什么登录信息仍然告诉我我有 12 个软件包需要更新?

最佳方法

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

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

创建一个空的 motd.tail

sudo touch /etc/motd.tail

次佳方法

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

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

第三种方法

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

ubuntu server: SSH banner telling to update packages but nothing to update

您所说的横幅称为 MOTD(每日消息)。看起来是a bug,通过删除/etc/motd.tail文件可以是work-arounded。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14245.html,未经允许,请勿转载。