Ubuntu 16.04-内核软件包已保留


18

我跑了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安装混乱。我在这里看到过类似的问题,但我认为它们与我的问题不同。我该怎么办 ?



@Yaron我不认为这是同一回事。
NikosL24 '17

是同一回事。阅读答案。
pzkpfw

在没有用户反馈的情况下,Apt绝不会执行超出明确要求的操作。只需回答n“否”(或Apt使用的语言的等同语言)即可。如果您仍然不确定在Apt操作期间可能发生的情况,则可以使用命令行选项-s/ --simulate/ --just-print/ --dry-run/ --recon/ / --no-act来查看Apt在不实际执行的情况下会做什么。
David Foerster

Answers:


6

尽管以前已经回答打包的软件包 ” 这个总的话题:今天有一种奇怪的事情……当我几个小时前执行时,提供了用于安装的新内核4.8.0-42。我执行并重新启动系统(Ubuntu 16.10工作站)后,我正在运行该新内核。 sudo apt updatesudo apt dist-upgrade

几个小时后,我想升级我的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完全相同。


软件包索引报告4.8.0-42:packages.ubuntu.com/xenial-updates/linux-generic-hwe-16.04 ...您使用的是哪个镜像?
muru

这绝对是一件真实的事情/问题。我昨天使用正常过程升级了系统。今天的apt-cache policy linux-generic-hwe-16.04节目*** 4.8.0.42.14 100 100 /var/lib/dpkg/status 换句话说,它变得孤立了。
有机大理石

@ cl-netbox我现在再次进行了sudo apt-get更新,软件包消失了。
NikosL24 '17

12

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

根据apt-get的说法,upgrade默认情况下不会安装其他尚未安装的软件包:

升级

...在任何情况下都不会删除或安装尚未安装的软件包或尚未安装的软件包。

--with-new-pkgs

与升级结合使用时,允许安装新软件包。如果更新已安装的软件包需要安装新的依赖项,则此功能很有用。升级不是升级软件包,而是升级软件包并安装新的依赖项。...

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

sudo apt-get --with-new-pkgs upgrade

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

另外,作为一项附加好处,sudo apt-get --with-new-pkgs upgrade没有导致将软件包标记为手动安装的副作用。


更新资料

Ubuntu 18.04提供了更新的,简化的语法apt,可以代替使用apt-get

sudo apt full-upgrade

整个“如果一个软件包需要安装一个新的软件包”,那么将其保留对我来说是没有意义的。我有自己管理的deb程序包,如果添加未在系统apt升级中安装的依赖项,仍会升级该程序包而不保留它。
shreddish

@shreddish以我的经验,某些sudo apt-get upgrade方案需要--with-new-pkgs每个手册页的信息。显然,您所管理的deb软件包或正在使用的测试方案不会触发对--with-new-pkgs选项的需求,该选项具有附加的卸载依存关系……出于某些尚待发现的原因。知道您是否能够找出原因是很有趣的。
l --marc l

2

作为一个相对较新的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软件安装我这些更新后,又回到了码头,做sudo apt-get updatesudo 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更新和升级软件包之间没有完整的通信。我相信您会找到更好的解释,但我想与您分享。


谢谢。通常,Ubuntu建议我们不要使用aptitude或synaptic(通过从默认安装中删除它们)。也许这就是寻找答案的方向。我将尝试暂时避免这两个。一旦我看到您的答案,我就会运行到软件中心,它向我展示了一些容易被忽略的事情。由于该操作系统是由Ubuntu构建的,因此我将升级至SC。这有点像当自制软件提出要求时与AppStore争论
。– nyxee

因此,对于我们这些条件差的人来说,这个软件中心似乎是一个非常糟糕的解决方案。还有另一种方法吗?
nyxee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.