есть ли способ предотвратить удаление пакета 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 *.