Назад | Перейти на главную страницу

Закрепление пакетов в 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

подходящий не мешает мне установить 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"