如何使用 aptitude 包管理器“自动删除”包?

如何使用 aptitude 包管理器“自动删除”包?

是否可以执行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”。

我找到了三种方法来删除它们。

  1. 能力用户界面

    sudo aptitude

    按下g即可预览要安装和删除的软件包。

    在此输入图像描述

    您可以在“由于不再使用而被删除的软件包”下找到这些软件包。然后再按g一次,aptitude 将删除这些包。

  2. 使用 grep 和 xargs 的 Aptitude 命令行

    aptitude search ~i | grep ^id | awk '{print $2}' | xargs sudo aptitude purge -y

  3. 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 参考手册中的“配置文件参考”中进行了描述。我没有足够的声誉来发布更多链接,因此您可以四处搜索该文档。

他们中的任何一个都适合我。

根据6.2.7.跟踪自动安装的软件包

有了这些信息,当软件包被删除时,软件包管理器可以计算出不再需要的自动软件包列表(因为没有“手动安装”的软件包依赖于它们)。

管理自动安装的包

更准确地说:当手动安装的软件包中没有通过 Depends、PreDepends 或 Recommends 的路径时,它们将被删除。

我的答案仅适用于从手动安装的包到目标包不存在依赖路径(Depends、PreDepends 或 Recommends)的情况。因此,没有办法使用aptitude来做与问题中描述的情况相同的事情apt-get autoremove(存在来自 的依赖路径ubuntu-gnome-desktop)。

相关内容