如何删除已卸载软件包的推荐和建议的依赖项?

如何删除已卸载软件包的推荐和建议的依赖项?

我知道如何删除已卸载软件包的依赖项?我试过了

apt-get autoremove

但这不会删除其他软件包推荐/建议的依赖项。

也就是说,如果我安装了一个推荐 Y 的软件包 X,但我没有安装 Y,然后我安装了依赖于 Y 的软件包 Z。后来我又

apt-get remove --auto-remove Z

那么 Y 不会被自动删除,尽管没有任何事物依赖它。(X“拾取”了 Y,尽管它并不依赖它)。

答案1

如果您想从系统中删除推荐的软件包,即使仍然有一些已安装的软件包推荐(或建议)它们,也请将以下内容放入文件中/etc/apt/apt.conf.d/99_norecommends(创建它):

APT::Install-Recommends "false";
APT::AutoRemove::RecommendsImportant "false";
APT::AutoRemove::SuggestsImportant "false";

这些选项的文档在这儿

然后,下一次运行 apt(尝试apt-get autoremove)应该会删除它们。如果没有,请启动aptitude,然后g再次输入g

此配置还会禁用使用时推荐软件包的自动安装apt-get。可以aptitude从控制台 GUI 执行此操作,菜单选项 > 首选项 > “自动安装推荐软件包”(取消选中)。

答案2

覆盖 APT 选项

与依赖项不同,自动安装的“推荐”或“建议”包可能会被忽略apt-get autoremove

如其他地方所述,APT 的这种行为可以在配置中改变。

apt-get同样,可以通过命令行选项暂时改变命令的配置-o

这就是,除了未使用的依赖项之外,您还可以强制自动删除剩余的“推荐”和“建议”包。

sudo apt-get autoremove -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0

警告!

某些功能可能会丢失。请做好调查和重新安装的准备。最好不要管这些软件包。

其他选择

要仅卸载特定软件包的“推荐”和“建议”软件包,请查看 apt 历史记录。

答案3

实际上命令是:

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 来删除一些依赖项。

答案4

好的,如果您想删除<Z>带有依赖项的包,只需输入:

sudo apt-get autoremove --purge <Z>

相关内容