我似乎记得autoremove
今年早些时候做过这个建议,并在此过程中破坏了我的系统。linux-headers-generic
而且linux-image-generic
似乎非常重要。
phm@LuckyCompCo:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libmono-accessibility4.0-cil
libmono-system-runtime-serialization-formatters-soap4.0-cil
libmono-system-windows-forms4.0-cil libmono-webbrowser4.0-cil
linux-headers-generic linux-image-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 14 not upgraded.
答案1
这两个包linux-headers-generic
和linux-image-generic
是元包。它们本身不提供任何内容,但依赖于其他包。这两个包始终依赖于最新版本的内核,因此当您执行 时apt-get upgrade
,将安装最新版本。您可以安全地删除它们,但如果您这样做,系统不会提示您进行内核升级。您可以将它们标记为手动安装:
sudo apt-get install linux-headers-generic linux-image-generic
在此之后,autoremove
不应该建议删除这两个。
答案2
建议删除这些包,因为它们被标记为“自动安装”而不是手动安装:
以下包已自动安装并且不再需要:
这通常不是这样由于 Ubuntu 尝试使用此元包让系统使用最新的可用内核,因此实际上,在您安装系统后,大多数软件包都会被标记为手动安装。您可能在不知情的情况下将其设置为自动安装,但只要您不使用该autoremove
命令,就可以安全地忽略该消息。要将这些软件包标记为手动安装,您可以使用apt-mark
:
sudo apt-mark manual linux-headers-generic linux-image-generic
这样,包就成功从列表中删除了。您也可以使用aptitude
'sunmarkauto
将包标记为手动安装。
为什么不用来apt-get install packages
标记它们?
首先,它会产生不想要的结果,例如升级软件包或安装其他不相关的软件包。其次,这不是该install
命令的用法。这特征已实现,因此当您选择安装已安装的软件包时,当您使用或与其他软件包一起时它不会自动被卸载autoremove
,因为您已经明确列出了要安装的软件包,而不是由于其他软件包安装而隐式列出的软件包。