apt-get install -f 想要删除 linux-image-generic

apt-get install -f 想要删除 linux-image-generic

我似乎记得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-genericlinux-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,因为您已经明确列出了要安装的软件包,而不是由于其他软件包安装而隐式列出的软件包。

相关内容