I need your advice as I don't know if I hit a bug, or I am misunderstanding something.

On a Debian Lenny, I am trying to prevent the installation of two particular packages, when they are requested as dependencies fromother packages. I am using the same syntax I successfully used in Squeeze, but with no success at all.

On squeeze, the following works as expected:

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

If I try to install pike7.6, which depends on pike7.6-core, apt and aptitude refuse to do so.

On Lenny, the only difference is that there is no support for "fragments" in /etc/apt/preferences.d, and all preferences must be in the /etc/apt/preferences file. But it's not working. E.g., if the file contains:

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

apt doesn't stop me from installing grub, which depends on grub-common.

I used strace to see if the file is being read, and it is. I was suggested to use some Debug:: options, but they didn't help to pinpoint the problem either. I have google'd a lot with some combinations of "lenny" "prevent" "package" "installation" "pinning" and the like, but nothing nice came out. And of course I read man apt_preferences.

What am I missing here?


as a workaround you can prevent a package upgrade by setting it to "hold" in dpkg:

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

then you can revert this with

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

another option mentioned here: http://lists.debian.org/debian-user/2009/07/msg00477.html

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

Since "fakerepo" is not a valid release, "somepackage" is never installable.

also may be helpful to check "apt-cache policy grub-common" output

  • Tried already, didn't work – bronto Oct 4 '12 at 11:12
  • I added another option, which I never tried... – Lluís Oct 4 '12 at 13:02
  • I had tried with apt-cache policy, but could not get anything useful out of it; it really seems that the pinning algorithm is flawed in lenny, and it was fixed in squeeze. As for the fakerepo, I had not tried it. Not sure I can, since we had to implement a different solution due to time constraints – bronto Oct 4 '12 at 16:12
  • as I understand you don't need to setup a fake repo, only configure some garbage on the "Pin: release a=xxX" line – Lluís Oct 4 '12 at 17:18
  • That was understood :) But we had to work around the problem another way, so I am not sure I'll manage to test with a fakerepo-style line. However, I'll save the suggestion, you never know :) Thanks – bronto Oct 5 '12 at 7:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.