将一个deb软件包标记为已使用,因此不建议将其自动删除


8

我的系统上安装了一堆共享库,这些共享库不是某些具体软件包的依赖项,但是从源代码(如最新的SDL,Allegro,SFML等)构建的非apt管理的库是必需的,并且从源代码构建的其他软件。问题在于,这些库被APT视为未使用,因此是自动删除的候选库,并且这些库与可以随意删除的合法未使用包混在一起。

有没有一种方法可以将软件包标记为已使用,以便不建议将它们自动删除?我的第一个想法是构建自己的元软件包,以仅保留依赖项(例如ubuntu-desktop),但是我不知道该怎么做。

Answers:


9

尽管也将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)中提供了更多详细信息。


4

只需使用apt-get install:

sudo apt-get install [your-packages]

它实际上不会安装它们。它只会将标志设置为手动安装。


2

您无需做任何像创建自己的元包一样复杂的事情。

假设您要确保一个名为的程序包foo永远不符合自动删除的条件。

打开一个终端窗口(Ctrl+ Alt+ T)并运行:

sudo apt-get install foo

也就是说,与手动安装软件包相同的命令会将它们标记为手动安装,因此即使最初删除它们作为依赖项安装的软件包本身也已被删除,它们也不会被自动删除。


@鲍里斯 如果您手动安装了软件包,那么无论您如何做,只要随后没有将其删除或标记为自动安装,就不会将其自动删除。
Eliah Kagan 2012年

2
您必须已将它们安装为对其他东西的依赖。您可能做了apt-get install yyyxxx安装为依赖项。然后,您将其删除yyyxxx标记为自动删除。现在你做apt-get install xxx
Vitalie Ciubotaru 2012年

我99%的确定我确实使用过安装了这些库apt-get install(因为我不知道安装它们的其他方式),但是仍然提供了它们的自动删除功能。
Boris B.

@VitalieCiubotaru是的,一定是这样。谢谢。
鲍里斯·B
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.