apt autoremove 尝试删除必需的软件包

apt autoremove 尝试删除必需的软件包

我最近跑了

apt install build-essential libncurses5-dev libpcap-dev libgtkmm-3.0-dev autoconf autopoint intltool libxml2-utils

作为应用程序依赖项,因为它在网站上提到过。但在我完成应用程序后,我运行

sudo apt purge build-essential libncurses5-dev libpcap-dev libgtkmm-3.0-dev autoconf autopoint intltool libxml2-utils

但之后apt给出了一个很大的自动删除列表

    The following packages were automatically installed and are no longer required:
  fonts-dejavu icoutils kate-data katepart kde-runtime-data kde-style-breeze
  kde-style-breeze-qt4 kdelibs-bin krita-data libatk-bridge2.0-dev
  libatk1.0-dev libatkmm-1.6-dev libatspi2.0-dev libdbus-1-dev libepoxy-dev
  libgdk-pixbuf2.0-dev libgmp-dev libgmpxx4ldbl libgtk-3-dev
  libkatepartinterfaces4 libkdcraw-data libkdcraw23 libkde3support4
  libkdeclarative5 libkdesu5 libkemoticons4 libkf5style5 libkjsembed4
  libkmediaplayer4 libknotifyconfig4 libkntlm4 libkpty4 libkxmlrpcclient4
  libllvm4.0 libnl-route-3-200 libntrack-qt4-1 libntrack0 libopencolorio1v5
  libpolkit-qt-1-1 libpoppler-qt4-4 libqt4-designer libqt4-qt3support
  libtinfo-dev libtinyxml2.6.2v5 libxcomposite-dev libxcursor-dev libxi-dev
  libxinerama-dev libxrandr-dev libxtst-dev libyaml-cpp0.3v5
  linux-headers-4.10.0-40 linux-headers-4.10.0-40-generic
  linux-headers-4.4.0-104 linux-headers-4.4.0-104-generic
  linux-image-4.10.0-40-generic linux-image-4.4.0-104-generic
  linux-image-extra-4.10.0-40-generic linux-image-extra-4.4.0-104-generic
  linux-signed-image-4.10.0-40-generic nettle-dev ntrack-module-libnl-0
  oxygen-icon-theme oxygen5-icon-theme plasma-scriptengine-javascript
  x11proto-composite-dev x11proto-randr-dev x11proto-record-dev
  x11proto-xinerama-dev xsltproc

但我知道这些软件包很重要。我再次安装了之前删除的软件包。但仍然显示大量要删除的软件包列表。如何解决这个问题?

答案1

安装软件包时,依赖项和推荐项有时也会被安装。删除软件包并不总是会删除与其一起安装的所有软件包。例如,我可以从列表中看到您曾经安装过krita。它是一个 KDE 软件包。但删除它时,会留下一些 KDE 软件。

以“libk”开头的都是 KDE 桌面包,gnome 不需要。以“-dev”结尾的都是开发包,除非您正在开发软件,否则大多数都是不需要的。普通包就足够了。

我通常会保留当前内核和前一个内核。其他的都可以删除。

由于所有列出的软件包都属于此类别,并且 apt 将它们列为未被其他软件包使用,因此可以安全地删除它们。

apt-get autoremove #this will remove packages that were autoinstalled that are no longer used by another package.

答案2

您正在清除build-essential其他依赖项的一些其他必需的包。

因此,如果你将它们标记为清除,apt它也会自动删除/清除全部依赖它们的包!


我建议不要用一个命令清除多个包(除非你知道自己在做什么),而应该一个一个地清除。这样你就可以更好地控制清除哪些包。


我猜测,当您运行第一个安装命令时,很可能某些软件包提到它们之前已经被安装过。

当然,您不想清除之前安装的软件包,因为这可能会导致依赖于它们的其他软件包也被清除(就像您的情况一样)。


对于linux-headerslinux-image包,正如评论中提到的,它通常会被保存,因为它apt会识别出您已经安装了较新的包。

答案3

我最近在删除一些软件包后遇到了同样的问题。如果系统当前运行良好,重启机器后就没什么可担心的。apt autoremove删除当前没有依赖关系的软件包。

答案4

我是一个没有经验的 Linux 用户,但是我刚刚遇到了这种情况,我相信它并不安全(对于没有经验的用户来说)。

我最近在安装 R 和 RStudio 后运行了“sudo apt autoremove”——我注意到一长串我经常使用的程序(比如 QGIS)中,apt 说“不再需要”——而且...我的 QGIS 安装消失了,而且由于我关闭了终端,我不知道还删除了哪些其他软件包。

我的建议(针对缺乏经验的用户)是有选择地删除非常旧的 Linux 内核、标头和图像(保留一些最近的以防您需要恢复) - 请参阅 user353733 的解释和 cl-Netbox 的建议https://askubuntu.com/a/1076329/992284,但不要让 apt 决定什么是“不再需要的”,特别是当您看到一堆经常使用的东西,并且不想花费整个晚上来弄清楚您的软件发生了什么以及为什么您不能重新安装软件或它的依赖项。

Synaptic Package Manager 的图片,显然无法重新安装使用 apt autoremove 删除的软件

相关内容