如何删除已卸载软件包的依赖项?


48

我想安装一个软件包(DigiKam),但是它有很多依赖性。如果我决定不再需要该软件并将其卸载,是否会删除现在不必要的依赖项?

如果没有,我该如何手动进行?

Answers:


80

您可以使用命令apt-get autoremove。它将删除安装为自动依赖项但不再依赖的软件包。

apt-get具有一个标志--auto-remove,可用于在删除手动安装的软件包时自动删除自动安装的软件包:

apt-get remove --auto-remove packagename

某些其他工具也可以执行此操作,例如,aptitude将自动建议您删除已孤立的软件包。

自动安装的软件包跟踪是内置的,因此无论您使用哪种工具来安装软件包,跟踪都应起作用。


因此,答案是在删除“父”包时不会自动完成,对吗?
jfoucher

这取决于您用来删除父程序包的方法。例如,aptitude建议您在卸载父软件包时将这些软件包删除。并非所有工具都能做到这一点。
Ressu

您可以使用一步来删除软件包及其所有不再需要的依赖项sudo apt-get remove --auto-remove package
Marius Gedminas

autoremove和--auto-remove之间的区别还不清楚。我可以合并它们吗?
约翰尼,为什么要

@johnywhy该标志旨在作为remove命令的参数,而auto-remove命令为独立命令。我怀疑您可以将它们组合在一起,但目前无法确定。
Ressu 2015年

10
aptitude purge digikam
deborphan
aptitude purge $(deborphan)

deborphan列出未使用或不依赖的软件包。因此,您可以安全地卸载它们。我倾向于将其purge用作选项,aptitude因为它还会删除配置文件和其他内容。


使用deborphan时,通常需要连续运行几次,或者至少是我的经验。它似乎继续寻找新的东西。
mfisch 2010年

是的,是的。有人给deborphan写了一个改进。但这从未进入Debian。该算法更好,您只能运行一次。也许我会问作者是否要将其再次添加到Debian / Ubuntu仓库中。
qbi 2010年

也许我不能使用它,但是deborphan通常想要删除我实际使用的许多应用程序以及一些重要的系统软件包。
2011年

1
aptitude purge <pkgname>对于完全清除已失败/部分成功卸载的软件包非常有用。它们的状态可能以dpkg -L <pkgname>as 列出,deinstall但使用aptitude会从aptitude的数据库中将其完全删除,而失败安装未删除的残留文件似乎也已删除。
KomodoDave



3
sudo apt-get remove --auto-remove 

只运行这个。

从软件中心安装BleachBit。当您使用它清理系统时,BleachBit将自动运行此命令以清理apt缓存。


0

我有同样的问题。这是我所做的:

sudo apt-get check

此命令将提供依赖项的名称。例如我的系统有chromium-browser-l10n

然后输入以下命令

sudo apt-get remove --auto-remove chromium-browser-l10n

它将完全从系统中删除依赖项

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.