Ubuntu 16.04 - 内核包被保留

Fen*_*isL 20 upgrade apt kernel

我跑了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.
Run Code Online (Sandbox Code Playgroud)

我担心如果我运行sudo apt-get dist-upgrade某些东西可能会出错并且可能会弄乱我的 Ubuntu 安装。我在这里看到过类似的问题,但我认为它们与我的问题不同。我该怎么办 ?

l -*_*c l 15

如果现有软件包的升级需要安装“新”软件包(例如尚未安装),则该特定现有软件包将被“保留”。

根据man apt-getupgrade默认情况下不安装其他尚未安装的软件包:

升级

...在任何情况下都不会删除当前安装的软件包,或者检索和安装尚未安装的软件包。

--with-new-pkgs

与升级结合使用时,允许安装新软件包。如果已安装包的更新需要安装新的依赖项,这将非常有用。升级将升级包并安装新的依赖项,而不是阻止包升级。...

因此,--with-new-pkgs需要添加以允许包含相关的其他包。

sudo apt-get --with-new-pkgs upgrade
Run Code Online (Sandbox Code Playgroud)

--with-new-pkgs 允许使用 Y/n 交互式提示安装相关的“尚未安装”的软件包。

此外,作为一个额外的好处,sudo apt-get --with-new-pkgs upgrade不会导致软件包被标记为手动安装的副作用。


更新

Ubuntu 18.04 提供了一种更新的、简化的语法apt,可以用来代替apt-get.

sudo apt upgrade --with-new-pkgs
Run Code Online (Sandbox Code Playgroud)


cl-*_*box 6

尽管以前在这里回答了一般主题包已被保留”:今天发生了一些奇怪的事情......当我sudo apt update几个小时前执行时,新内核 4.8.0-42 已提供安装。我执行sudo apt dist-upgrade了系统(Ubuntu 16.10 工作站)重新启动后,我正在运行该新内核。

几个小时后,我想升级我的 Ubuntu 服务器安装,但没有提供新内核。为了重新检查情况,我在 Ubuntu 工作站上恢复了昨天的 clonezilla 系统备份映像以重新检查情况。这次不再提供新内核。内核 4.8.0-42 似乎被意外推送到主存储库,并且正在被推回建议的存储库 - 也许 Canonical 发现了一个错误。

您已选择加入Ubuntu 16.04的HWE 堆栈,这意味着您正在使用 Ubuntu 16.10 的内核 4.8。因此,一切都首先发生在 Ubuntu 16.10 的内核上,这可能是对 Ubuntu 16.04 LTS 存储库刷新过程的时间延迟的解释。

当您sudo apt update稍后再次运行时,您收到的消息不应再出现。结论:不要运行sudo apt dist-upgrade并等待,直到存储库更新并且有关被阻止的内核包的消息不再出现。顺便说一句,前一段时间内核版本 4.8.0-40 也发生了完全相同的情况。