Закрепление пакета в Debian lenny
Мне нужен твой совет, так как я не знаю, попал ли я в жук или я что-то неправильно понял.
На 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
APT не останавливает меня от установки grub
, который зависит от grub-common
,
я использовал strace
чтобы увидеть, если файл читается, и это так. Мне предложили использовать некоторые Debug::
варианты, но они не помогли точно определить проблему. Я много гуглял с некоторыми комбинациями " lenny ", предотвращать "", пакет "," установка "," закрепление "и тому подобное, но ничего хорошего не вышло. И конечно я читаю man apt_preferences
,
Что мне здесь не хватает?
1 ответ
В качестве обходного пути вы можете предотвратить обновление пакета, установив для него значение "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"