Мне нужен ваш совет, поскольку я не знаю, обнаружил ли я ошибку, или я что-то не понимаю.
На 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
, подходящий и способность отказываются это делать.
На Ленни разница только в том, что нет поддержки "фрагментов" в /etc/apt/preferences.d
, и все предпочтения должны быть в /etc/apt/preferences
файл. Но это не работает. Например, если файл содержит:
Package: grub-common
Pin: version *
Pin-Priority: -1000
подходящий не мешает мне установить grub
, что зависит от grub-common
.
я использовал strace
чтобы увидеть, читается ли файл, и это так. Мне предложили использовать некоторые Debug::
параметры, но и они не помогли определить проблему. у меня есть много гуглил с некоторыми комбинациями "Ленни""предотвращать""пакет""монтаж""закрепление"и тому подобное, но ничего хорошего не вышло. И конечно Я читаю man apt_preferences
.
Что мне здесь не хватает?
в качестве обходного пути вы можете предотвратить обновление пакета, установив для него значение «hold» в dpkg:
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"