我的系统上安装了许多共享库,它们不是某些具体软件包的依赖项,但对于我从源代码构建的非 apt 管理库(如最新的 SDL、Allegro、SFML 等)和从源代码构建的其他软件而言是必需的。问题是,这些库被 APT 视为未使用的,因此是自动删除的候选对象,并且它们与可以自由删除的合法未使用软件包混在一起。
有没有办法将包标记为已使用,这样就不会建议自动删除它们?我的第一个想法是构建自己的元包以保存依赖项(例如 ubuntu-desktop),但我不知道该怎么做。
答案1
虽然apt-get install
也将软件包标记为已安装,但它还会执行其他操作,例如升级软件包(如果有可用的升级)。更改自动安装状态的正确程序是apt-mark
。
用法
将包标记为手动安装(这样它就不会被删除apt-get autoremove
):
sudo apt-mark manual package1 package2 ... packageN
将包标记为自动安装(这样,apt-get autoremove
如果没有包依赖于它,它将被删除):
sudo apt-mark auto package1 package2 ... packageN
更多详细信息请参阅手册页apt-mark(8)。
答案2
只需使用 apt-get 安装:
sudo apt-get install [your-packages]
它实际上不会安装它们。它只会将标志设置为手动安装。
答案3
您不需要做任何像创建自己的元包那么复杂的事情。
假设你想确保一个名为foo
永远不符合自动移除的资格。
打开终端窗口 ( Ctrl++ Alt)T并运行:
sudo apt-get install foo
也就是说,手动安装软件包的相同命令将将它们标记为手动安装所以即使最初作为依赖项安装的软件包本身被删除,它们也不会被自动删除。