我跑了sudo apt-get upgrade
,得到了这个:
The following packages have been kept back:
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04 linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
我担心如果我运行sudo apt-get dist-upgrade
某些程序可能会出错,并会弄乱我的 Ubuntu 安装。我在这里看到过类似的问题,但我认为它们与我的问题不同。我该怎么办?
答案1
如果升级现有包需要“新”包(例如尚未安装)待安装,那么该特定现有包将被“阻止”。
根据apt-get 命令,upgrade
默认不安装其他尚未安装的软件包:
升级
... 在任何情况下都不会删除当前安装的软件包,或者检索和安装尚未安装的软件包。
--with-new-pkgs
与升级结合使用时允许安装新软件包。如果已安装软件包的更新需要安装新的依赖项,则此功能非常有用。升级不会保留软件包,而是会升级软件包并安装新的依赖项。...
因此,--with-new-pkgs
需要添加以允许包含相关的其他包。
sudo apt-get --with-new-pkgs upgrade
--with-new-pkgs
允许使用 Y/n 交互式提示来安装相关的“尚未安装”的包。
此外,还有一个额外的好处,sudo apt-get --with-new-pkgs upgrade
它不会产生导致软件包被标记为手动安装的副作用。
更新
Ubuntu 18.04 提供了一种更新、更简化的语法,apt
可以代替使用它apt-get
。
sudo apt upgrade --with-new-pkgs
答案2
虽然一般主题“包裹被扣留“之前在这里回答过:今天发生了一些奇怪的事情……sudo apt update
几个小时前我执行时,新内核 4.8.0-42 被提供安装。我执行sudo apt dist-upgrade
后,在系统(Ubuntu 16.10 工作站)重新启动后,我正在运行该新内核。
几个小时后,我想升级我的 Ubuntu 服务器安装,但没有提供新内核。为了重新检查情况,我在 Ubuntu 工作站上恢复了昨天的 clonezilla 系统备份映像,以重新检查情况。这次没有提供新内核。似乎内核 4.8.0-42 被意外推送到主存储库,并且正在被推送回建议的存储库 - 也许 Canonical 发现了一个错误。
您已选择加入HWE 堆栈Ubuntu 16.04,这意味着您使用的是 Ubuntu 16.10 的内核 4.8。因此,所有事情都首先发生在 Ubuntu 16.10 的内核上,这可能是 Ubuntu 16.04 LTS 存储库刷新过程时间延迟的原因。
当您sudo apt update
稍后再次运行时,您收到的消息应该不会再出现。结论:不要运行,sudo apt dist-upgrade
等到存储库更新后,有关保留的内核包的消息不再出现。顺便说一句,不久前内核版本 4.8.0-40 也发生了同样的情况。
答案3
作为一个相对较新的 Ubuntu 用户,我遇到了同样的问题,并显然解决了它。我发现 Ubuntu 软件上有三个待处理的更新,其名称与终端上列出的更新相同,如下所示:
The following packages have been kept back:
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
从 Ubuntu Software 安装这些更新后,我返回终端并执行了sudo apt-get update
。sudo apt-get upgrade
结果:
The following packages were automatically installed and are no longer required:
linux-headers-4.8.0-41 linux-headers-4.8.0-41-generic linux-headers-4.8.0-44 linux-headers-4.8.0-44-generic linux-image-4.8.0-41-generic
linux-image-4.8.0-44-generic linux-image-extra-4.8.0-41-generic linux-image-extra-4.8.0-44-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
虽然我不是专家,但我认为从 Ubuntu 软件安装更新似乎可以解决问题。问题似乎是 Ubuntu 软件与 apt-get 更新和升级包之间没有完全通信。我相信你会找到更好的解释,但我想与你分享这一点。