Debian 9.1:apt-get autoremove 不会删除依赖项

Debian 9.1:apt-get autoremove 不会删除依赖项

在此输入图像描述

从截图中可以看出,我安装了checkinstall,它附带了很多新的依赖包。

当我跑步时:

sudo apt-get purge checkinstall

仅 checkinstall 被删除。然后我跑了:

sudo apt-get autoremove

删除新包但没有删除任何内容。

有什么想法我可能做错了什么吗?谢谢

附言。请忽略 ubuntu 文件夹。这只是一个目录名称。我确实在使用 Stretch

编辑1:aptitude 的输出 为什么 binutils build-essential

在此输入图像描述

答案1

默认情况下,apt-get autoremove非常保守,这会导致您看到的行为。虽然apt-get install默认情况下仅考虑直接依赖项和建议,但apt-get autoremove也会考虑建议(非常弱的依赖项)。这是不对称的,意味着默认情况下apt-get autoremove不一定会完全撤消软件包安装。

因此,在您的情况下,安装checkinstall拉入了许多软件包,所有这些软件包最终都被认为是不可删除的apt-get autoremove;例如,build-essential被保留是因为apt(这绝对是必要的)建议dpkg-dev,建议build-essential。对于 拉入的每个包,您都会发现这种关系checkinstall

要解决此问题,您可以添加

Apt::AutoRemove::SuggestsImportant "false" ;

通过此设置,apt-get autoremove将找到更多要删除的包。由于您的系统是新安装的,所以它应该是安全的(我的意思是上面提到的不对称不会引起很多意外,因为您还没有安装很多软件包);但在实际删除它们之前,请检查要删除的软件包列表!

相关内容