mrj*_*per 3 debian apt package-management
从截图中可以看出,我安装了checkinstall,它附带了很多新的依赖包。
当我跑步时:
sudo apt-get purge checkinstall
Run Code Online (Sandbox Code Playgroud)
仅 checkinstall 被删除。然后我跑了:
sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)
删除新包但没有删除任何内容。
有什么想法我可能做错了什么吗?谢谢
附言。请忽略 ubuntu 文件夹。这只是一个目录名称。我确实在使用 Stretch
edit1: aptitude 的输出为什么 binutils build-essential
默认情况下,apt-get autoremove
非常保守,这会导致您\xe2\x80\x99 看到的行为。虽然apt-get install
默认情况下仅考虑直接依赖项和建议,apt-get autoremove
但也会考虑建议(非常弱的依赖项)。这是不对称的,意味着默认情况下,apt-get autoremove
won\xe2\x80\x99 不一定完全撤消软件包安装。
因此,在您的情况下,安装checkinstall
拉入了许多软件包,所有这些软件包最终都被认为是不可删除的apt-get autoremove
;例如,build-essential
被保留是因为apt
(这绝对是必要的)建议dpkg-dev
,建议build-essential
。您\xe2\x80\x99将为 . 拉入的每个包找到这种类型的关系checkinstall
。
要解决此问题,您可以添加
\n\nApt::AutoRemove::SuggestsImportant "false" ;\n
Run Code Online (Sandbox Code Playgroud)\n\n通过此设置,apt-get autoremove
将找到更多要删除的包。由于你的系统是新安装的,所以应该是安全的(我的意思是上面提到的不对称性不会引起很多意外,因为你还没有安装很多软件包);但在实际删除之前,请检查它要删除的软件包列表\xe2\x80\x99!
归档时间: |
|
查看次数: |
5755 次 |
最近记录: |