我需要你的建议,因为我不知道我是否遇到了错误,或者我误解了什么。
在 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
易于和资质拒绝这样做。
在 Lenny 上,唯一的区别是不支持 中的“片段” /etc/apt/preferences.d
,并且所有首选项都必须在/etc/apt/preferences
文件中。但它不起作用。例如,如果文件包含:
Package: grub-common
Pin: version *
Pin-Priority: -1000
易于不会阻止我安装grub
,这取决于grub-common
。
我用了strace
查看文件是否正在被读取,结果是正在读取。有人建议我使用一些Debug::
选择,但它们也无助于查明问题所在。我有谷歌搜索了很多有一些组合莱尼“ “防止“ “包裹“ “安装“ “钉住“之类的,但没有什么好结果。当然我读man apt_preferences
。
我在这里遗漏了什么?
答案1
作为一种解决方法,您可以通过在 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 policy grub-common”输出也可能有帮助