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

Как YUM узнает, какой репозиторий использовать для установки, если одно и то же приложение доступно в двух репозиториях?

ПРИМЕР СЦЕНАРИЯ: Установка Nginx

Я устанавливаю Nginx. Чтобы получить последнее репо, я загружаю RPM с веб-сайта Nginx. Вот так:

rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

Поскольку мне нужно установить PHP-FPM, я также загрузил еще пару репозиториев откуда-то еще, например:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm


rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Теперь первое репо также содержит Nginx. Итак, когда я печатаю:

yum install nginx

Какое репо будет использовать YUM для установки Nginx?

Спасибо!

По умолчанию вы получаете самую высокую версию пакета, доступную в любом включен репозиторий. Имя репозитория не имеет значения.

Конечно, различные плагины yum, такие как приоритеты и блокировка версий, могут изменить доступные вам пакеты или версии пакетов.

Если имя пакета абсолютно одинаково в обоих репозиториях, yum разрешит это в алфавитном порядке.

Следовательно, он будет загружать обороты из репо первым в естественном порядке. Обычно, по моему опыту, я всегда устанавливаю плагин yum priority, который помогал бы мне расставлять приоритеты репозиториев по критериям, заданным пользователем. Вы можете получить больше информации здесь: http://wiki.centos.org/PackageManagement/Yum/Priorities

РЕДАКТИРОВАТЬ:

Мой принятый ответ неверен. Если имя пакета абсолютно одинаково в обоих репозиториях, yum не разрешит это по алфавиту. Майкл был прав. Это официальный ответ Redhat об этом сценарии:

Таким образом, в этом состоянии yum просто запросит репозитории, и тот, кто получит первый запрос на выборку, ответит обратно, и пакет с его зависимостями будет извлечен из того же самого. Никаких конфликтов не будет. Загружаемый пакет будет случайным по своей природе.