![apt 删除软件包但保留自动安装的软件包](https://linux22.com/image/164341/apt%20%E5%88%A0%E9%99%A4%E8%BD%AF%E4%BB%B6%E5%8C%85%E4%BD%86%E4%BF%9D%E7%95%99%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
在我的 Debian 服务器上,一些软件包没有明确安装,但在安装另一个软件包时会自动安装。
一段时间后,我开始在不同的环境中使用其中一些包。
现在,如果我尝试删除最初安装的软件包,apt 建议还卸载所有自动安装的软件包,我现在仍然需要这些软件包。
我该如何卸载仅有的软件包也没有卸载自动安装的软件包吗?
答案1
当你开始需要一个包的优点而不是作为一个依赖项时,你需要告诉你apt
这个事实。有两种方法可以做到这一点:
- 显式安装已安装的软件包,
apt install
不会再次安装它,但会将其标记为手动安装(如果存储库中的版本比已安装的版本新,则升级它); - 标记一个包,用
apt-mark manual
.
其中任何一个都会将软件包设置为手动安装,并且它将不再是自动删除的候选者。
请注意,“自动删除”有点用词不当:在其默认配置中,apt
除非出于依赖性原因必须这样做,否则永远不会自动删除包。仅当apt
明确告知要这样做时,才会删除可自动删除的软件包。另一方面,Aptitude 确实会自行删除可自动删除的软件包。
答案2
您只能用于dpkg -r
删除包。