Вопрос или проблема
Я обнаружил некоторые пакеты, которые нарушают мою конфигурацию (например, 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) не будут устанавливаться.
Шаги:
-
Откройте терминал.
-
Создайте или отредактируйте файл предпочтений:
sudo nano /etc/apt/preferences.d/<имя_пакета>
Замените
<имя_пакета>
на название пакета, который вы хотите заблокировать, напримерlight-locker
. -
Добавьте следующее содержимое:
Package: light-locker Pin: release * Pin-Priority: -1
-
Сохраните файл и выйдите из редактора.
Теперь при попытке установить light-locker
будет возникать ошибка, и установка не произойдет.
2. Блокировка пакета
Вы также можете использовать команду apt-mark
для блокировки пакета. Это более простая альтернатива.
Шаги:
- Откройте терминал.
-
Введите команду:
sudo apt-mark hold <имя_пакета>
Например:
sudo apt-mark hold light-locker
Теперь установщик не сможет обновить или удалить заблокированный пакет.
3. Использование apt-listbugs
Если вы хотите следить за проблемными пакетами и получать информацию о известных ошибках, вы можете установить apt-listbugs
. Это даст вам возможность видеть известные баги и принимать обоснованные решения перед установкой.
Шаги:
-
Установите
apt-listbugs
:sudo apt install apt-listbugs
-
Проверьте наличие багов для интересующего пакета:
apt-listbugs list light-locker
Изучите список известных ошибок и, если это необходимо, принимайте решение о блокировке именно этого пакета.
Заключение
При помощи этих методов вы сможете предотвратить установку нежелательных пакетов в вашей системе Debian. Используйте подходящий для вас метод в зависимости от ваших нужд: механизм apt pinning для более жесткого контроля или простую блокировку при помощи apt-mark.