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

Как разрешить загрузку пакета только из определенного репозитория с помощью Yum?

Контекст:

У нас есть несколько настраиваемых репозиториев yum (в CentOS 6), и наши пользователи регулярно устанавливают различное / произвольное программное обеспечение через yum для тестирования.

У нас есть пакет, доступный в нескольких репозиториях. Он называется одинаково в двух разных репозиториях, назовите их Y и Z, но пакеты НЕ идентичны. Оба репозитория используются для других вещей / установок, но рассматриваемый пакет должен когда-либо устанавливаться только из репозитория Y.

Что я пробовал:

Когда я вручную устанавливаю рассматриваемый пакет, я исключаю / включаю репозитории, чтобы убедиться, что получаю правильную версию. Однако обычные пользователи а) забывают это сделать и б) иногда устанавливают другие пакеты, которые зависят от рассматриваемого пакета, и он устанавливается из неправильного репо как часть процесса установки зависимости.

Вопрос:

Есть ли способ настроить параметры yum по умолчанию, чтобы указать, что «если пакет X доступен из более чем одного источника, предпочитать / настаивать на источнике Y вместо источника Z»?

Моя цель - не менять нормальный yum install процесс, который в настоящее время есть у наших пользователей; они по-прежнему должны иметь возможность устанавливать произвольное программное обеспечение с использованием простейшего синтаксиса. Просто определенные пакеты (установленные вручную или как часть установки зависимостей) должны поступать только из определенных репозиториев.

Здесь yum-plugin-priorities пакет.
Это позволяет отдавать приоритет настроенным репозиториям.
Посмотреть здесь: http://wiki.centos.org/PackageManagement/Yum/Priorities#head-6f52124e909c1691eb0c501ba38ae9202b66d6da

Или вы можете исключить пакеты в /etc/yum.conf.
http://linux.die.net/man/5/yum.conf:

исключить Список пакетов, которые нужно исключить из обновлений или установок. Это должен быть список, разделенный пробелами. Подстановочные знаки оболочки с использованием подстановочных знаков (например, * и?) Разрешены.

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

Нет, у yum есть только один способ решить, какую версию пакета X установить, а именно выбрать последнюю версию, которую он может найти (где «последняя» имеет особое значение для сравнения версий RPM).

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

  • Укажите конкретную версию для установки yum, например name-ver, name-ver-rel (см. man yum)
  • Исправьте зависимости вашего пакета, чтобы использовать что-то отличное от простого имени пакета; либо конкретная версия, либо виртуальный «Provides», либо конкретный файл, присутствующий только в требуемой версии, либо что-то еще, что отличает различные версии.