我知道如何删除已卸载软件包的依赖项?我试过了
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>