是否可以执行等效于apt-get autoremove
with aptitude
?如果是,如何?
Debian的管理员手册说的是aptitude
“autoremoves”自动包,但事实却并非如此(并非总是如此)。就我而言(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]
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
这是输出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
Run Code Online (Sandbox Code Playgroud)
不再使用的自动包在 aptitude 中标记为“id”。
\n\n我找到了三种方法来删除它们。
\n\n能力用户界面
\n\nsudo aptitude
按g
可预览要安装和删除的软件包。
您可以在“由于不再使用而被删除的软件包”下找到这些软件包。然后再按g
一次,aptitude 将删除这些包。
使用 grep 和 xargs 的 Aptitude 命令行
\n\naptitude search ~i | grep ^id | awk \'{print $2}\' | xargs sudo aptitude purge -y
Aptitude::Delete-Unused
带选项的 Aptitude 命令行
sudo aptitude -o Aptitude::Delete-Unused=1 install
\n\n\n选项:Aptitude::删除-未使用
\n\n默认值:true
\n\n说明:如果此选项为 true,则不再需要的自动安装的软件包将被自动删除。有关详细信息,请参阅\n名为 \xe2\x80\x9c 管理自动安装的软件包\xe2\x80\x9d 的部分。
\n
我从http://www.lambdacurry.com/2013/12/aptitude-equivalent-of-apt-get-autoremove/找到了这个解决方案。并且该选项在 aptitude 参考手册中的“配置文件参考”中进行了描述。我没有足够的声誉来发布更多链接,因此您可以四处搜索该文档。
他们中的任何一个都适合我。
\n\n\n\n\n\n\n\n\n有了这些信息,当软件包被删除时,软件包管理器可以计算出不再需要的自动软件包列表(因为没有\xe2\x80\x9c手动安装的\xe2\x80\x9d软件包依赖于它们)。
\n
\n\n\n更准确地说:当手动安装的软件包中没有通过 Depends、PreDepends 或 Recommends 的路径时,它们将被删除。
\n
我的答案仅适用于从手动安装的包到目标包不存在依赖路径(Depends、PreDepends 或 Recommends)的情况。因此,没有办法使用aptitude
来做与问题中描述的情况相同的事情apt-get autoremove
(存在来自 的依赖路径ubuntu-gnome-desktop
)。