防止在Debian中安装特定的软件包

我有几个Debian服务器,我想确保一个X服务器永远不会被安装在它们上面。 有时,当我安装一个软件包,它有依赖包括X.有没有什么好的方法来确保X服务器永远不会被安装? 我宁愿X11库也不安装,因为X转发不应该启用。

把一个软件包搁置不起作用(很好)来实现这一点。 它不能以令人满意的方式覆盖所有的工具。 例如,命令行上的aptitude hold somepackage完全忽略了先前调用aptitude hold somepackage软件包,安装软件包也会安装依赖项,即使它们处于暂停状态。

在我看来,最好的办法是创build一个与所有你不想要的软件包相冲突的虚拟软件包(命名为“unwanted-pkg”),然后安装它(用dpkg -i )。 然后你把这个包裹搁置,以避免它的删除。

您可以使用像“equivs”这样的工具来轻松创build假包。 参见equivs-controlequivs-build 。 冲突字段如下所示:

Conflicts: xserver-xorg-video-2, xserver-xorg-core

您可以与所有不需要的软件包通用的低级别依赖冲突,以避免列出每个单独的软件包(或者使用像xserver-xorg-video-2这样的虚拟软件包)。

请注意,locking无法解决此问题。 如果你使用aptitude install xorg它会安装许多xserver-xorg- *软件包,尽pipe负面的固定。 顺便说一句,针对被apt识别(使用apt-cache policy <package> ),你必须使用这样一个语法:

 $ cat /etc/apt/preferences Package: xserver-xorg-video-vga Pin: version * Pin-Priority: -100 $ LANG=C apt-cache policy xserver-xorg-video-vga xserver-xorg-video-vga: Installed: (none) Candidate: 1:4.1.0-8 Package pin: 1:4.1.0-8 Version table: 1:4.1.0-8 -100 500 http://localhost lenny/main Packages 

在Package字段中使用正则expression式不起作用(除了“*”本身,在这种情况下,Pin字段中还有其他一些要求)。

http://www.debian.org/doc/FAQ/ch-pkg_basics.en.html

请参阅第7.12节“如何放置一个包裹?”

如果您持有当前卸载的软件包,将永远不会安装。

您可以使用apt固定来防止安装某些软件包。 试着把这个放在/etc/apt/preferences

包:xser​​ver-xorg *
引脚优先级:-100

应该防止安装所有xserver-xorg *软件包。