据我了解,如果一个软件包是自动安装的并且没有其他软件包依赖于它,则系统应该主动删除它。
为什么在这种情况下不会发生这种情况?
:~$ sudo apt list --installed | grep -i zutty
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
zutty/unstable,now 0.14.0.20230218+dfsg1-1 amd64 [installato, automatico]
:~$ sudo apt-cache rdepends zutty
zutty
Reverse Depends:
:~$ sudo apt autoremove
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze... Fatto
Lettura informazioni sullo stato... Fatto
0 aggiornati, 0 installati, 0 da rimuovere e 0 non aggiornati.
PS 抱歉意大利语输出控制台
答案1
apt autoremove
默认情况下比 更保守apt install
;具体来说,apt install
默认情况下安装推荐的软件包,并忽略建议的软件包,但apt autoremove
会考虑建议。(参见推荐和建议如何与 apt-get dist-upgrade 和 apt-get autoremove 交互?了解详情。)
但这不是这里发生的事情。zutty
不是自动删除的候选者,因为它提供了x-terminal-emulator
,并且许多软件包依赖、推荐或建议这一点。
确定保留包裹原因的最简单方法是询问aptitude
:
aptitude why zutty
答案2
它可以由于包或依赖项的更改而导致。如果包或其依赖项自安装后发生了更改,apt
则可能无法识别不再需要它们。如果包的依赖项由于系统更新或其他更改而发生更改,则可能会发生这种情况。
您可以尝试使用apt-mark showmanual
来显示所有apt
被视为手动安装的软件包。如果zutty
在列表中,您可以使用将其标记为自动安装# apt-mark auto zutty
,然后重试# apt autoremove
。
如果这不起作用,您可以尝试运行# apt-get autoclean
并# apt-get clean
清除检索到的包文件的本地存储库,然后# apt autoremove
重试。