Вопрос или проблема
Я пытаюсь предотвратить установку APT любых пакетов на основе Snap на моей системе. Например, некоторые пакеты предлагаются в версиях Snap с такими названиями:
- Firefox:
1:1snap1-0ubuntu5
- Thunderbird:
2:1snap1-0ubuntu3
- Chromium-browser:
2:1snap1-0ubuntu2
Я хочу заблокировать или понизить приоритет всех таких версий Snap, чтобы APT по умолчанию использовал .deb пакеты из других репозиториев или PPA. Однако метод, который я пробовал до сих пор, не сработал.
Я создал файл snap.pref
в папке /etc/apt/preferences.d/
со следующим содержимым:
Package: *
Pin: version *snap*
Pin-Priority: -1
Однако apt ответил W: Не понял тип пина version
и не обновил приоритет для пакетов на основе Snap.
Можете подсказать правильный способ сделать это?
Ответ или решение
Чтобы предотвратить установку пакетов Snap через APT на вашем Ubuntu или другом дистрибутиве, основанном на Debian, вам нужно правильно настроить систему приоритетов APT. Поскольку ваш текущий подход с использованием файла snap.pref
не сработал, давайте рассмотрим подробный и правильный метод для достижения вашей цели.
Шаг 1: Установите структуру приоритетов APT
Создайте файл, который будет содержать настройки приоритетов для Snap-пакетов. Это поможет APT игнорировать пакеты Snap в пользу .deb-версий. Для этого:
-
Откройте терминал.
-
Создайте новый файл в директории
/etc/apt/preferences.d/
:sudo nano /etc/apt/preferences.d/snap.pref
-
Вставьте следующий код в файл:
Package: *snap* Pin: release a=* Pin-Priority: -1
В этом примере мы указываем, что все пакеты, содержащие слово "snap" в имени, должны иметь приоритет -1. Это заставит APT игнорировать эти пакеты.
-
Сохраните файл и закройте редактор (для
nano
нажмитеCTRL + X
, затемY
для подтверждения иENTER
для выхода).
Шаг 2: Обновите списки пакетов
После создания файла предпочтений обязательно обновите списки пакетов, чтобы изменения вступили в силу:
sudo apt update
Шаг 3: Проверьте приоритеты
Для проверки, правильно ли установлены приоритеты, можно использовать команду:
apt-cache policy
Просмотрите вывод и убедитесь, что для пакетов Snap указан приоритет -1.
Шаг 4: Удалите недействительный файл
Убедитесь, что больше нет старых настроек, которые могут конфликтовать с новыми. Если вы создали файл с неправильным синтаксисом (например, с Pin: version *snap*
), удалите его или измените содержимое на дату выше.
Важные замечания
- Обратите внимание, что данная настройка будет влиять на все Snap-пакеты в вашей системе. Если в будущем вы захотите установить Snap-пакет, вам придется либо временно изменить настройки приоритетов, либо использовать команду
snap install
напрямую. - Если по какой-то причине приоритет по-прежнему не применяется, проверьте, нет ли других файлов в
/etc/apt/preferences.d/
, которые могут влиять на эту настройку.
Заключение
Следуя этим шагам, вы сможете успешно предотвратить установку Snap-пакетов через APT. Это позволит вашей системе использовать только .deb
версии пакетов, что может быть важным для поддержки совместимости и стабильности вашего программного окружения. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.