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

Запретить удаление пакета debian с помощью марионетки

есть ли способ предотвратить удаление пакета debian? Я хочу предотвратить любое разрешение атрибутов «заменяет» и «ломает», которое привело бы к удалению этого пакета при возможности его обновления. Все в порядке, если этот пакет установлен в любой версии после того, как все будет сделано.

Единственный способ, который я нашел, - это отложить посылку. Это не решение, так как для запуска обновления необходимо заранее снять блокировку.

Это в марионеточной среде, поэтому проверка всех возможных совпадений пакетов вручную на каждом типе хоста просто невозможна.

Контекст:

Если вы допустили ошибку при упаковке, возникают случаи, когда цепочки требований к пакетам приводят к удалению пакетов, которые являются фундаментальными для этого сервера (сеть, управление пользователями, ...). Я знаю, что есть много неприятных обстоятельств, поэтому это происходит, например, когда тестируются два пакета по отдельности, и состояние гонки между ними все портит. Все дело в том, чтобы определить нижнюю границу того, что может пойти не так.

Указатели для других:

Вы можете использовать один из этих вариантов для apt; которую марионетка уважает:

~ $ cat /etc/apt/apt.conf.d/99neverremoveanything 
APT::Get::Remove "false";
APT::Get::Upgrade-Allow-New "true";

Для меня эти параметры не полностью удовлетворительны, поэтому я оставляю этот вопрос без ответа, поскольку только некоторые пакеты действительно нуждаются в этой защите.

Вы также можете использовать предложенное здесь решение: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=767891

Он включает в себя создание метапакетов с приоритетом: требуется, который зависит от пакетов, которые вы хотите защитить.

Вы можете использовать файл / etc / apt / preferences, например ...

Пакет: <Имя пакета>

Пин: версия 1.0 *

Pin-Priority: 10

Это предотвратит обновление <Package Name> до версии выше 1.0 *.

Ссылка:- https://wiki.debian.org/AptPreferences