![如何使用 aptitude 包管理器“自动删除”包?](https://linux22.com/image/105618/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20aptitude%20%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8%E2%80%9C%E8%87%AA%E5%8A%A8%E5%88%A0%E9%99%A4%E2%80%9D%E5%8C%85%EF%BC%9F.png)
是否可以执行apt-get autoremove
与 with等效的操作aptitude
?如果是,怎么办?
Debian 管理员手册说“autoremoves”会aptitude
自动打包,但这不是真的(并不总是如此)。就我而言(Ubuntu GNOME 16.04),我有一个 Linux 内核,apt-get autoremove
建议我摆脱:
§ sudo apt-get autoremove
[sudo] password for alexey:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-31 linux-headers-4.4.0-31-generic
linux-image-4.4.0-31-generic linux-image-extra-4.4.0-31-generic
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
After this operation, 295 MB disk space will be freed.
Do you want to continue? [Y/n]
aptitude
不过,并不关心它。
这是输出aptitude why linux-image-4.4.0-31-generic
:
i ubuntu-gnome-desktop Depends gdm3
i A gdm3 Recommends xserver-xorg
c xserver-xorg Recommends xserver-xorg-video-all | xorg-driver-video
p virtualbox-guest-x11 Provides xorg-driver-video
p virtualbox-guest-x11 Depends virtualbox-guest-utils (= 5.0.32-dfsg-0ubuntu1.16.04.2)
p virtualbox-guest-utils Recommends virtualbox-guest-dkms (= 5.0.32-dfsg-0ubuntu1.16.04.2) | v
irtualbox-guest-source (= 5.0.32-dfsg-0ubuntu1.16.04.2) |
virtualbox-guest-modules
i A linux-image-4.4.0-31-generic Provides virtualbox-guest-modules
这是输出aptitude search '~i linux.*4.4.0-31' -F '%c%a%M %p'
:
i A linux-headers-4.4.0-31
i A linux-headers-4.4.0-31-generic
i A linux-image-4.4.0-31-generic
i A linux-image-extra-4.4.0-31-generic
答案1
不再使用的自动包在 aptitude 中标记为“id”。
我找到了三种方法来删除它们。
能力用户界面
sudo aptitude
按下
g
即可预览要安装和删除的软件包。您可以在“由于不再使用而被删除的软件包”下找到这些软件包。然后再按
g
一次,aptitude 将删除这些包。使用 grep 和 xargs 的 Aptitude 命令行
aptitude search ~i | grep ^id | awk '{print $2}' | xargs sudo aptitude purge -y
Aptitude::Delete-Unused
带选项的Aptitude 命令行sudo aptitude -o Aptitude::Delete-Unused=1 install
选项:Aptitude::删除-未使用
默认值:true
说明:如果此选项为 true,则不再需要的自动安装的软件包将被自动删除。有关更多信息,请参阅“管理自动安装的软件包”部分。
我从以下位置找到了这个解决方案http://www.lambdacurry.com/2013/12/aptitude-equivalent-of-apt-get-autoremove/。并且该选项在 aptitude 参考手册中的“配置文件参考”中进行了描述。我没有足够的声誉来发布更多链接,因此您可以四处搜索该文档。
他们中的任何一个都适合我。
有了这些信息,当软件包被删除时,软件包管理器可以计算出不再需要的自动软件包列表(因为没有“手动安装”的软件包依赖于它们)。
和管理自动安装的包:
更准确地说:当手动安装的软件包中没有通过 Depends、PreDepends 或 Recommends 的路径时,它们将被删除。
我的答案仅适用于从手动安装的包到目标包不存在依赖路径(Depends、PreDepends 或 Recommends)的情况。因此,没有办法使用aptitude
来做与问题中描述的情况相同的事情apt-get autoremove
(存在来自 的依赖路径ubuntu-gnome-desktop
)。