Yum - настройка приоритета репозиториев
Предпосылка: устанавливая Oracle 11Gr2 на Centos 6.3 подключил репозиторий public-yum.oracle.com. Позже, при обновлении
пакетов, входящих в стандартный дистрибутив CentOS, обратил внимание, что yum качает их не из репозитория CentOS, а с public-yum.oracle.com. Такая ситуация в корне не верна, так как при наличии оригинальных пакетов от производителя ОС не стоит заменять их пакетами третьих разработчиков. В дальнейшем это может привести к проблемам с зависимостями. Чтобы избежать подобной ситуации в будущем устанавливаем плагин yum-priorities. 0. Предварительные мероприятия. Так как данный плагин опять таки обнаружился в хранилище public-yum.oracle.com, решил временно отключить этот репозиторий. Просмотреть активные в данный момент репозитории можно при помощи команды #yum repolist all
Loaded plugins: fastestmirror, priorities, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: centos-mirror.rbc.ru * extras: centos-mirror.rbc.ru * updates: centos-mirror.rbc.ru 16870 packages excluded due to repository priority protections repo id repo name status C6.0-base CentOS-6.0 - Base disabled C6.0-centosplus CentOS-6.0 - CentOSPlus disabled C6.0-contrib CentOS-6.0 - Contrib disabled C6.0-extras CentOS-6.0 - Extras disabled C6.0-updates CentOS-6.0 - Updates disabled C6.1-base CentOS-6.1 - Base disabled C6.1-centosplus CentOS-6.1 - CentOSPlus disabled C6.1-contrib CentOS-6.1 - Contrib disabled C6.1-extras CentOS-6.1 - Extras disabled C6.1-updates CentOS-6.1 - Updates disabled C6.2-base CentOS-6.2 - Base disabled C6.2-centosplus CentOS-6.2 - CentOSPlus disabled C6.2-contrib CentOS-6.2 - Contrib disabled C6.2-extras CentOS-6.2 - Extras disabled C6.2-updates CentOS-6.2 - Updates disabled base CentOS-6 - Base enabled: 6 381 c6-media CentOS-6 - Media disabled centosplus CentOS-6 - Plus disabled contrib CentOS-6 - Contrib disabled debug CentOS-6 - Debuginfo disabled extras CentOS-6 - Extras enabled: 13 ol6_MySQL MySQL for Oracle Linux 6 (x86_64) disabled ol6_UEK_base Unbreakable Enterprise Kernel for Orac disabled ol6_UEK_latest Latest Unbreakable Enterprise Kernel f enabled: 197+42 ol6_addons Oracle Linux 6 Add ons (x86_64) disabled ol6_ga_base Oracle Linux 6 GA installation media c disabled ol6_gdm_multiseat Oracle Linux 6 GDM Multiseat (x86_64) disabled ol6_latest Oracle Linux 6 Latest (x86_64) enabled: 979+21 457 ol6_playground_latest Latest mainline stable kernel for Orac disabled ol6_u1_base Oracle Linux 6 Update 1 installation m disabled ol6_u2_base Oracle Linux 6 Update 2 installation m disabled ol6_u3_base Oracle Linux 6 Update 3 installation m disabled ol6_u4_base Oracle Linux 6 Update 4 installation m disabled updates CentOS-6 - Updates enabled: 1 406 repolist: 8 976 Редактируем файл oracle-репозитория /etc/yum.repos.d/public-yum--ol6.repo. В тех секциях, где был установлен параметр enabled=1, временно присваиваем ему значение 0 : [ol6_latest] name=Oracle Linux $releasever Latest ($basearch) baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=0 #enabled=1
...........
1. Теперь, когда дополнительные репозитории отключены, устанавливаем плагин:
#yum install yum-priorities
Проверяем, включен ли плагин. Для это смотрим, есть ли в файле /etc/yum/pluginconf.d/priorities.conf строчки:
[main]
enabled=1
2. Далее, редактируем файлы .repo в директории /etc/yum.repos.d/ и для каждого репозитория дописываем параметр:
Код
priority=N
, где N - число от 1 до 99.
Рекомендуемые настройки:
[base], [addons], [updates], [extras] ... priority=1 (приоритет=1)
[centosplus] ... priority=2 (приоритет=2)
Остальные дополнительные репозитории, к примеру такие как rpmforge ... priority=N
(где N к примеру > 10 и основывается на вашем предпочтении). [ol6_latest] name=Oracle Linux $releasever Latest ($basearch) baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1 priority=10
........... 3. Если отключали дополнительные репозитории, как было описано в предварительных мероприятиях, включаем их. 4. Проверяем. #yum update samba или какой-либо иной пакет. Смотрим внимательно в секции Version и Repository. ==================================================== Package Arch Version Repository Size ==================================================== Updating: squid x86_64 7:3.1.10-19.el6_4 updates 1.7 M
Transaction Summary ==================================================== Upgrade 1 Package(s)
Чтобы проверить, какие пакеты были установлены из сторонних репозиториев ( не CentOS) используем команду:
#rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep -v CentOS gpg-pubkey (none) crash-gcore-command FUJITSU LIMITED samba-client Oracle America samba-winbind-clients Oracle America gpg-pubkey (none) proftpd (none) samba Oracle America samba-winbind Oracle America libsmbclient Oracle America samba-common Oracle America crash-trace-command Fujitsu Limited pdksh Red Hat Software
Видим, что samba успела обновиться с репозитория public-yum.oracle.com Для отображения приоритетов для всех установленных репозиториев используем команду
#cat /etc/yum.repos.d/*.repo | sed -n -e "/^\[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" | sort -k3n priority = 1 [base] priority = 1 [c6-media] priority = 1 [extras] priority = 1 [updates] priority = 2 [centosplus] priority = 2 [contrib] priority = 3 [C6.0-base] priority = 3 [C6.0-centosplus] priority = 3 [C6.0-contrib] priority = 3 [C6.0-extras] priority = 3 [C6.0-updates] priority = 3 [C6.1-base] priority = 3 [C6.1-centosplus] priority = 3 [C6.1-contrib] priority = 3 [C6.1-extras] priority = 3 [C6.1-updates] priority = 3 [C6.2-base] priority = 3 [C6.2-centosplus] priority = 3 [C6.2-contrib] priority = 3 [C6.2-extras] priority = 3 [C6.2-updates] priority = 3 [debug] priority = 10 [ol6_addons] priority = 10 [ol6_ga_base] priority = 10 [ol6_gdm_multiseat] priority = 10 [ol6_latest] priority = 10 [ol6_MySQL] priority = 10 [ol6_playground_latest] priority = 10 [ol6_u1_base] priority = 10 [ol6_u2_base] priority = 10 [ol6_u3_base] priority = 10 [ol6_u4_base] priority = 10 [ol6_UEK_base] priority = 10 [ol6_UEK_latest]
Если номер не определен, по умолчанию, это самый низкий приоритет (99).
Литература: Советы по работе с Yum и RPM
http://wiki.dieg.info/yum
|