在Debian lenny中封装

我需要你的build议,因为我不知道我是否遇到了错误,或者我误解了一些东西。

Debian Lenny中,我试图阻止安装两个特定的包 ,当它们被请求作为其他包的依赖时。 我使用的是与在Squeeze中成功使用的语法相同的语法,但没有成功

在挤压,以下按预期工作:

# cat /etc/apt/preferences.d/local-no-pike.pref Package: pike7.6-core Pin: version * Pin-Priority: -1000 

如果我试图安装pike7.6 ,这取决于pike7.6-coreaptaptitude拒绝这么做。

在Lenny上,唯一的区别是在/etc/apt/preferences.d不支持“fragments”,所有的参数都必须在/etc/apt/preferences文件中。 但它不工作。 例如,如果该文件包含:

 Package: grub-common Pin: version * Pin-Priority: -1000 

apt不阻止我安装grub ,这取决于grub-common

我用strace来查看文件是否正在被读取,而且是。 我被build议使用一些Debug::选项 ,但他们无助于查明问题。 我已经谷歌很多与“ lenny ”“ 防止 ”“ ”“ 安装 ”“ ”之类的一些组合,但没有什么好事出来。 当然, 我读了man apt_preferences

我在这里错过了什么?

作为一种解决方法,您可以通过在dpkg中将其设置为“hold”来阻止软件包升级:

 echo "grub-common hold"|dpkg --set-selections 

那么你可以恢复这个

 echo "grub-common install"|dpkg --set-selections 

这里提到的另一个选项: http : //lists.debian.org/debian-user/2009/07/msg00477.html

 Package: somepackage Pin: release a=fakerepo Pin-Priority: 1001 

由于“fakerepo”不是有效的版本,“somepackage”永远不可安装。

也可能有助于检查“apt-cache策略grub-common”输出