Итак о приоритетах репозитариев.
Подключение yum-плагинов: для того, чтобы использовать любые плагины с yum на CentOS 4, сначало необходимо отредактировать файл → /etc/yum.conf и добавить следующую строку:
plugins=1
После того, как плагины были включены в yum.conf, вы можете устанавливать их и использовать. В CentOS 5 эта опция включена по умолчанию.
Примечание: Этот плагин называется yum-priorities в CentOS-5 и yum-plugin-priorities в CentOS-4. Функционирует он одинаково на обеих версиях.
Устанавливается данный плагин с помощью команды:
CentOS-4:
yum install yum-plugin-priorities
CentOS-5
yum install yum-priorities
Данный плагин может быть использован для обеспечения упорядоченности защиты репозиториев посредством назначения им приоритетов. Пакеты из репозитория с более низким приоритетом никогда не будут использоваться для обновления пакетов, которые были установлены из репозиториев с более высоким приоритетом. Приоритеты так же используются для установки нового пакета - если пакет находится более чем в одном репозитории, он будет установлен из репозитория с наивысшим приоритетом. Этот плагин будет наиболее полезен тем пользователям, которые используют сторонние репозитории, так как они потенциально могут поставить под угрозу стабильность вашей системы CentOS.
Чтобы использовать данный плагин, вы должны включить его в файле /etc/yum.conf, см. YUM для уточнения деталей.
Плагин Priorities можно получить в двух местах:
Через репозиторий CentOS Extras. Поскольку репозиторий CentOS Extras включен по умолчанию, вы можете установить этот плагин на CentOS 4, установив yum-plugin-priorities пакет. В CentOS 5 Extras репозитории - имя пакета yum-priorities. Более подробную информацию о рипозиториях CentOS можно найти на странице репозиториев.
После того как плагин установлен, убедитесь, что он включен. Вы можете сделать это путем редактирования файла /etc/yum/pluginconf.d/priorities.conf:
[main] enabled=1
Пример: если пакет gconfmm2 был установлен из основного репозитория и другой пакет (скажем gconfmm20 из дополнительного репозитория) настаивает на замене собой устаревшего пакета gconfmm2, YUM заменит gconfmm2 на gconfmm20. Использование же данного плагина может предотвратить эту ситуацию. Добавив следующую строку в основной раздел (main section) /etc/yum/pluginconf.d/priorities.conf:
check_obsoletes=1
С включенным плагином, вы можете добавить репозиториям приоритеты, вставив следующую строку:
priority=N
в запись для репозитория, где N - целое число от 1 до 99. Приоритет для репозиториев по умолчанию составляет 99. Репозитории с меньшим номером имеют высший приоритет. Как правило, лучше всего назначить высший приоритет для репозиториев base и update. В следующем примере файла CentOS-Base.repo как раз и задан подобный случай с назначением для репозиторев [base] и [update] наивысшего (N=1) приоритета:
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=1 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=1 #packages used/produced in the build but not released [addons] name=CentOS-$releasever - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=1 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=1 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=2 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=2
Примечание: Приведенный выше пример для CentOS-4, имя файла RPM-GPG-KEY-centos4 (в строке gpgkey) должна быть заменена на RPM-GPG-KEY-CentOS-5 для использования на CentOS-5.
После внесения этих изменений в файл CentOS-Base.repo, YUM никогда не будет обновлять пакеты из репозиториев [base] и [update] пакетами из репозиториев с низкими приоритетами.
Рекомендуемыми параметрами являются:
[base], [addons], [updates], [extras] ... priority=1 [centosplus],[contrib] ... priority=2 Сторонние репозитории ... priority=N (где N > 10 и на основе ваших предпочтений)