Как пометить пакет, чтобы предотвратить его установку [дубликат]

Вопрос или проблема

Я обнаружил некоторые пакеты, которые нарушают мою конфигурацию (например, light-locker, evince и т. д.)

Как я могу предотвратить установку этих пакетов через apt-get install в моей системе (Debian) с указанной причиной ошибки?

Используйте Pin-Priority: -1

например:

$ cat >/etc/apt/preferences.d/libsystemd0 <<EOF
Package: libsystemd0
Pin: release *
Pin-Priority: -1
EOF

Я обнаружил некоторые пакеты, которые нарушают мою конфигурацию (например, light-locker, evince и т. д.)

apt-listbugs — это правильный инструмент для работы с ошибочным пакетом, позволяющий вам прикрепить пакет или зависимости. Например:

# apt install apt-listbugs
$ apt-listbugs list light-locker

серьезные ошибки light-locker (-> ) <Неисправлено>
 b1 - #892290 - light-locker: при разблокировке происходит сбой: аргументы для dbus_message_new_method_call() были некорректны
Резюме:
 light-locker(1 ошибка)

Ответ или решение

Чтобы предотвратить установку определенных пакетов через apt-get в системе Debian, вы можете воспользоваться механизмами приоритизации пакетов (apt pinning) или временно заблокировать пакеты. Вот подробные шаги по каждому из методов:

1. Использование apt pinning

Вы можете создать файл предпочтений в директории /etc/apt/preferences.d/ и указать в нем приоритет для конкретного пакета. Пакеты с низким приоритетом (например, -1) не будут устанавливаться.

Шаги:

  1. Откройте терминал.

  2. Создайте или отредактируйте файл предпочтений:

    sudo nano /etc/apt/preferences.d/<имя_пакета>

    Замените <имя_пакета> на название пакета, который вы хотите заблокировать, например light-locker.

  3. Добавьте следующее содержимое:

    Package: light-locker
    Pin: release *
    Pin-Priority: -1
  4. Сохраните файл и выйдите из редактора.

Теперь при попытке установить light-locker будет возникать ошибка, и установка не произойдет.

2. Блокировка пакета

Вы также можете использовать команду apt-mark для блокировки пакета. Это более простая альтернатива.

Шаги:

  1. Откройте терминал.
  2. Введите команду:

    sudo apt-mark hold <имя_пакета>

    Например:

    sudo apt-mark hold light-locker

Теперь установщик не сможет обновить или удалить заблокированный пакет.

3. Использование apt-listbugs

Если вы хотите следить за проблемными пакетами и получать информацию о известных ошибках, вы можете установить apt-listbugs. Это даст вам возможность видеть известные баги и принимать обоснованные решения перед установкой.

Шаги:

  1. Установите apt-listbugs:

    sudo apt install apt-listbugs
  2. Проверьте наличие багов для интересующего пакета:

    apt-listbugs list light-locker

    Изучите список известных ошибок и, если это необходимо, принимайте решение о блокировке именно этого пакета.

Заключение

При помощи этих методов вы сможете предотвратить установку нежелательных пакетов в вашей системе Debian. Используйте подходящий для вас метод в зависимости от ваших нужд: механизм apt pinning для более жесткого контроля или простую блокировку при помощи apt-mark.

Оцените материал
Добавить комментарий

Капча загружается...