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

Контекст:

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

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

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

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

Вопрос:

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

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

2 ответа

Решение

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

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

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

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

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

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

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