在我的 Debian 服务器上,一些软件包没有明确安装,而是在安装另一个软件包时自动安装。
一段时间后,我开始在不同的环境中使用其中的一些包。
现在,如果我尝试删除最初安装的包,apt 建议同时卸载所有自动安装的包,我现在仍然需要这些包。
如何仅卸载软件包而不卸载自动安装的软件包?
在我的 Debian 服务器上,一些软件包没有明确安装,而是在安装另一个软件包时自动安装。
一段时间后,我开始在不同的环境中使用其中的一些包。
现在,如果我尝试删除最初安装的包,apt 建议同时卸载所有自动安装的包,我现在仍然需要这些包。
如何仅卸载软件包而不卸载自动安装的软件包?
当你开始需要一个包本身的优点时,而不是作为一个依赖项,你需要告诉
apt
这个事实。有两种方法可以这样做:apt install
, 不会再次安装它,但会将其标记为手动安装(如果存储库中的版本比安装的版本新,则升级它);apt-mark manual
.其中任何一个都会将包设置为手动安装,并且它将不再是自动删除的候选者。
请注意,“自动删除”有点用词不当:在其默认配置中,
apt
从不自动删除包,除非出于依赖性原因必须这样做。apt
仅当明确告知这样做时,才会删除自动删除包。另一方面,Aptitude 确实会自行删除可自动删除的软件包。您可以使用
dpkg -r
仅删除一个包。