题 Ubuntu Server消息说包可以更新,但apt-get不会更新任何[重复]


可能重复:
更新amazon-ec2 ubuntu 10.04服务器 

当我登录到Ubuntu 10.04.2 LTS服务器时,我看到了以下消息:

42 packages can be updated.
18 updates are security updates.

但是当我尝试更新它时,没有任何东西像预期的那样升级:

$ sudo apt-get update
....snip....
Reading package lists... Done
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  linux-generic-pae linux-headers-generic-pae linux-image-generic-pae
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

任何想法为什么没有更新,或为什么3(来自apt-get)的数量不同于42?什么软件说42如果不适合?

(其他细节:这是服务器版,没有GUI;我没有触及apt配置文件;当我安装软件时,我拒绝允许自动更新)


41
2018-05-02 10:04




@ Chopper3:虽然这个答案是肯定的 真的很封闭 对于那个被发现为重复的人,我看不出OP如何知道命令aptitude与这个问题有关。默认情况下,在最新的ubuntu服务器中没有安装Aptitude,所以答案应该集中在如何使用它来解决它 apt-get的 不 能力倾向 (这是在另一篇文章中提出的工具,必须先安装才能解决这个问题) lists.ubuntu.com/archives/maverick-changes/2010-June/...  - > aptitude从标准中删除 - hmontoliu
一些人要求将其作为重复关闭,我对这个问题没有特别的意见。 SF是一个民主国家,如果有足够的人想要一个问题关闭,那么,如果有足够多的人想要重新开放的话。 - Chopper3


答案:


为了安装包 保持回来 你必须运行:

sudo apt-get update && sudo apt-get dist-upgrade

试着跑 sudo apt-get update && sudo apt-get upgrade 不会安装包 保持回来 因为 apt-get upgrade 默认情况下不会尝试安装新的软件包(例如新的内核版本);从手册页: 在任何情况下当前都没有安装包已删除,或者尚未安装的包已检索和安装 

然而 apt-get dist-upgrade 允许您在需要时安装新软件包(即新的内核版本);从手册页:

  dist-upgrade
       dist-upgrade in addition to performing the function of upgrade, also intelligently handles changing dependencies with new
       versions of packages; apt-get has a "smart" conflict resolution system, and it will attempt to upgrade the most important
       packages at the expense of less important ones if necessary. So, dist-upgrade command may remove some packages. The
       /etc/apt/sources.list file contains a list of locations from which to retrieve desired package files. See also
       apt_preferences(5) for a mechanism for overriding the general settings for individual packages.

39
2018-05-02 10:18



这确实更新了三个包,但它没有改变读取与之前完全相同的MOTD消息(“42个包可以更新......”)。我不得不通过手动重置此消息 sudo rm /etc/motd.tail,现在我正确地看到“0包可以更新”。 - Mike T
这对我有用,可以清除之后留下的包裹 sudo apt-get upgrade - Joshua Pinter


此消息来自MOTD(当天的消息)系统。最近将介绍如何修复此消息与包管理器之间的不一致的详细信息 这个答案


18
2018-05-02 10:18



sudo rm /etc/motd.tail 做了伎俩 - Mike T
但这不会升级你的系统:-) - hmontoliu
上面是上面的 sudo apt-get update && sudo apt-get dist-upgrade但是,这并没有改变消息文本。我不得不删除尾文件并重新启动,现在我正确地看到“0包可以更新” - Mike T
最后一次升级和MOTD之间存在延迟。我注意到Ubuntu 14,如果你跑的话 sudo /etc/update-motd.d/90-updates-available 做完之后 update, dist-upgrade 和 autoremove (可选但很好),它什么都不会显示。但是如果你立即开始一个新的会话,MOTD将仍然显示旧的消息。等一下 然后 开始一个新的会话,现在MOTD更新,什么都不显示。 PS: 记得 sudo reboot。 - ADTC
重启?我无法相信我们必须重新启动才能刷新系统消息。这个bug已经存在了7年多而没有被修复?惊人。 - Niklas Rosencrantz