我知道如何删除已卸载软件包的依赖项?我尝试了
apt-get autoremove
但这不会删除其他软件包建议/建议的依赖项。
也就是说,如果我安装了推荐使用Y的软件包X,但我没有安装Y,然后又安装了依赖Y的软件包Z,后来又
apt-get remove --auto-remove Z
那么即使没有任何依赖,Y也不会自动删除。(即使X不依赖Y,X也会“捡起” Y)。
我知道如何删除已卸载软件包的依赖项?我尝试了
apt-get autoremove
但这不会删除其他软件包建议/建议的依赖项。
也就是说,如果我安装了推荐使用Y的软件包X,但我没有安装Y,然后又安装了依赖Y的软件包Z,后来又
apt-get remove --auto-remove Z
那么即使没有任何依赖,Y也不会自动删除。(即使X不依赖Y,X也会“捡起” Y)。
Answers:
如果要从系统中删除推荐的软件包,即使仍然有一些推荐或建议安装的软件包,也请在文件中放置以下内容/etc/apt/apt.conf.d/99_norecommends
(创建):
APT::Install-Recommends "false";
APT::AutoRemove::RecommendsImportant "false";
APT::AutoRemove::SuggestsImportant "false";
这些选项的文档在这里。
然后,下一次适当运行将其全部删除。如果不是,请启动aptitude
,g然后g再次键入。
使用时,此配置还会禁用推荐软件包的自动安装apt-get
。为此aptitude
,可以从控制台GUI的菜单>选项>首选项>“自动安装推荐的软件包”(取消选中它)。
InstallRecommends
残疾人生活得很好。根据记录,默认情况下它是禁用的,直到Debian Squeeze发布,即从2011年2月开始(不知道Ubuntu)。此外,您可能不需要在服务器或桌面安装程序上使用相同的配置。
与依赖项不同,可以忽略自动安装的“推荐”或“建议”软件包apt-get autoremove
。
如其他地方所述,可以在配置中更改APT的这种行为。
同样,apt-get
可以通过-o
命令行选项临时更改命令的配置。
这样,除了未使用的依赖项之外,您将强制自动删除删除剩余的“推荐”和“建议”程序包。
sudo apt-get autoremove -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0
某些功能可能会丢失。准备调查并重新安装东西。单独保留这些软件包可能会更容易。
要仅为特定软件包卸载“推荐”和“建议”软件包,请查看apt历史记录日志。
apt-get
-s
grep ^Remv
apt-get autoremove -s -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 | grep ^Remv
实际上,命令是:
sudo apt-get autoremove <Z>
但这有一个窍门!如果任何依赖项中有其他先前安装的软件包会推荐/建议它们,则apt不会删除它们。
您没有指定什么软件包,但是例如,如果我要安装IcedTea插件,它将通过依赖项安装Java / OpenJRE。如果我使用卸载它们,sudo apt-get autoremove icedtea-7-plugin
您会注意到它不会删除Java / OpenJRE,因为LibreOffice也建议使用这些软件包。
因此,要删除它们,您必须对要卸载的软件包过分具体,而正常autoremove
情况下不会:
sudo apt-get autoremove <Z> <dependency of Z>
这样,您可以确定您的包裹已被移除。
您也可以使用deborphan删除某些依赖项。
deborphan
但是deborphan可能仍会丢失某些软件包。您可以使用这些Debug::
选项,也可以查看我对此的其他答案。您也可以使用--no-install-recommends
,但apt-get默认情况下不安装建议的软件包。
正确,如果您要删除<Z>
具有依赖性的软件包,请键入:
sudo apt-get autoremove --purge <Z>
autoremove
在整个系统范围内均可使用。因此,无论何时调用autoremove
,它都会删除系统上所有未使用的软件包。安装软件包后,autoremoving
通常不会使系统返回相同的状态,而是会留下一堆“剩余”软件包。