我需要你的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-core
, apt和aptitude拒绝这么做。
在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”输出