apt-get autoremove 危险吗?

apt-get autoremove 危险吗?

我正在编译一个名为操纵杆所以我安装了一些软件包和依赖项。但现在我不再需要它们了,所以我删除了这些软件包。运行apt-get显示我有一些自动安装的软件包,不再需要。

但我对 的使用体验并不好apt-get autoremove。前段时间我卸载 wine 时,它​​破坏了我的桌面环境。幸运的是,当时我有一个 clonezilla 分区备份,但这次我没有备份。所以我很谨慎。运行apt-get显示这些包是孤立的

  gir1.2-gtk-2.0 libasound2-dev libavahi-client-dev libavahi-common-dev
  libcaca-dev libcairo-script-interpreter2 libdbus-1-dev libdrm-dev
  libexpat1-dev libfontconfig1-dev libfreetype6-dev libgl1-mesa-dev
  libglu1-mesa-dev libharfbuzz-dev libharfbuzz-gobject0 libice-dev
  libpcre3-dev libpcrecpp0 libpixman-1-dev libpng12-dev libpthread-stubs0-dev
  libslang2-dev libsm-dev libx11-dev libx11-doc libx11-xcb-dev libxau-dev
  libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev
  libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev
  libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxcomposite-dev
  libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev
  libxft-dev libxi-dev libxinerama-dev libxrandr-dev libxrender-dev
  libxshmfence-dev libxxf86vm-dev mesa-common-dev x11proto-composite-dev
  x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev
  x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev
  x11proto-record-dev x11proto-render-dev x11proto-xext-dev
  x11proto-xf86vidmode-dev x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev
  zlib1g-dev

我不确定是否应该运行apt-get autoremove。我搜索了与每个包相关的详细信息,以便了解需要哪些包,但它们似乎都很重要,例如

gir1.2-gtk-2.0

我安装了 Cinnamon、GNOME 和 Unity,我觉得apt-get autoremove可能会破坏某些东西。任何帮助都将不胜感激。

谢谢阅读。

答案1

正如其他人提到的,autoremove 应该注意安全,不过话又说回来,你说你有不好的经历,而且我也记得autoremove删除了一些不应该删除的东西。

似乎autoremove某些元软件包可能会出现问题。假设您安装了gnome整个 gnome-desktop 的元软件包(或者在设置系统时安装了元软件包),其中还包括诸如evolution和许多游戏之类的程序,您可能想要删除它们,因为您正在使用thunderbird并且不想拥有这些游戏等。这要求您也删除gnome元软件包,因为它依赖于所有这些软件包。但这将使所有其他作为依赖项安装的软件包成为gnome“自动可删除”,例如gnome-shell,如果您想继续使用该桌面,您很可能希望保留这些软件包。

因此,检查建议自动删除的软件包始终是个好主意。如果您使用的是图形软件包管理器(如)synaptic,则可以轻松执行此操作并取消选中要保留的软件包的“自动安装”标志(如上gnome-shell例所示)。这还将删除所有软件包那些依赖于自动删除列表,因此您可能只需要“修复”其中的几个,而不是全部。

尽管如此,应该不会删除对您的系统真正重要的任何内容,因此即使您不小心删除了桌面,您仍然可以启动并登录到您的系统并使用命令行恢复这些更改。


更新:最近,在进行 dist 升级(Debian)后,autoremove实际上删除了一些与硬盘加密相关的内容(仍然不确定具体是什么,可能与所述问题有关这里),导致我的系统无法解密硬盘并使用最新内核启动。幸运的是,它仍然可以使用仍安装的旧内核,我可以重新安装之前自动删除的所有内容,否则我的系统就会被破坏,包括我的数据。

apt我认为和朋友中没有“撤消上次更改”选项。synaptic有一个菜单选项可以查看上次更改(文件 -> 历史记录;似乎只显示一些日志文件,尽管我找不到日志本身;另外,我不确定这是否只列出了在 Synaptic 中所做的更改,还是也列出了在等等中所做的更改apt),所以我从这些日志中复制了自上次成功重启(幸运的是,我每天都重启)以来我自动删除的所有软件包的名称,然后重新安装它们,然后重启。

答案2

令人惊讶的是,还没有人提到--dry-run和等效选项:

来自apt-get手册页

-s、--模拟、--just-print、--dry-run、--recon、--no-act
不采取任何行动。模拟将要发生的但实际上不会改变系统的事件。

配置项:APT::Get::Simulate。Simulate
打印出一系列行,每行代表一个 rpm 操作:配置 (Conf)、删除 (Remv)、解包 (Inst)。

此选项似乎适用于aptapt-get命令。

示例输出:

sudo apt-get autoremove --dry-run
[...]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-5.8.0-36-generic linux-hwe-5.8-headers-5.8.0-36 linux-image-5.8.0-36-generic
  linux-modules-5.8.0-36-generic linux-modules-extra-5.8.0-36-generic
0 upgraded, 0 newly installed, 5 to remove and 13 not upgraded.
Remv linux-headers-5.8.0-36-generic [5.8.0-36.40~20.04.1]
Remv linux-hwe-5.8-headers-5.8.0-36 [5.8.0-36.40~20.04.1]
Remv linux-modules-extra-5.8.0-36-generic [5.8.0-36.40~20.04.1]
Remv linux-image-5.8.0-36-generic [5.8.0-36.40~20.04.1]
Remv linux-modules-5.8.0-36-generic [5.8.0-36.40~20.04.1]

因此,我建议人们可以选择运行autoremove--dry-run选项,冷静地研究输出,并据此决定做什么。

额外的观察是:如果定期运行自动移除,那么可自动移除的软件包就不会堆积起来,因此监督和评估每次试运行的输出就变得更加可行。

答案3

apt-get remove 绝对可以毁掉你的系统。我遇到过两次这种情况,而且我可以重复(在基于 Debian 的发行版上);两次都是在 vbox 上,所以没什么大不了的。我亲眼看着它删除了我整个 XFCE 安装。

答案4

运行此程序应该非常安全,sudo apt-get autoremove它应该只删除不再使用或不再需要的软件包。如果它是一个必要的软件包,删除后会“破坏”您的系统,则不应将其删除。

相关内容