Linux Yum - налаштування пріоритету репозиторіїв

Передумова: встановлюючи Oracle 11Gr2 на Centos 6.3, підключив репозиторій public-yum.oracle.com. Пізніше, при оновленні пакетів, що входять до стандартного дистрибутиву CentOS, звернув увагу, що yum качає їх не з репозиторію CentOS, а з public-yum.oracle.com.

Така ситуація докорінно не вірна, тому що за наявності оригінальних пакетів від виробника ОС не варто замінювати їх пакетами третіх розробників. Надалі це може призвести до проблем із залежностями.

Щоб уникнути подібної ситуації в майбутньому, встановлюємо плагін yum-priorities.

0. Попередні заходи.Оскільки цей плагін знову таки виявився в сховищі public-yum.oracle.com, вирішив тимчасово відключити цей репозиторій.

Переглянути активні в даний момент репозиторії можна за допомогою команди

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 - Updatesdisabled base CentOS-6 - Baseenabled: 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 - Extrasenabled: 13 ol6_MySQL MySQL for Oracle Linux 6 (x86_64) disabled ol6_UEK_base Unbreakable Enterprise Kernel для Orac вимкнено ol6_UEK_latest Latest Unbreakable Enterprise Kernel fувімкнено: 197+42 ol6_addons Додатки Oracle Linux 6 (x86_64) вимкнено ol6_ga_base Інсталяційний носій Oracle Linux 6 GA c вимкнено ol6_gdm_multiseat Oracle Linux 6 GDM Multiseat (x86_64) вимкнено ol6_latest Oracle Linux 6 Остання (x86_64)ввімкнено: 979+21 457 ol6_playground_latest Останнє основне стабільне ядро ​​для Orac вимкнено ol6_u1_base Oracle Linux 6 Update 1 встановлення m вимкнено ol6_u2_base Oracle Linux 6 Update 2 встановлення m вимкнено ol6_u3_base Oracle Linux 6 Update 3 встановлення m вимкнено ol6_u4_base Oracle Linux 6 Update 4 встановлення m вимкнено оновлення CentOS-6 - Оновленняввімкнено: 1 406 реполіст: 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 встановити yum-пріоритети

Перевіряємо, включений чи плагін. Для цього дивіться, чи є у файлі /etc/yum/pluginconf.d/priorities.conf сторінки:

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=1priority=10

3.Якщо відключали додаткові репозиторії, як було описано у попередніх заходах, включаємо їх.

#yum update samba або інший пакет. Дивимося уважно у секції Version та Repository.

Щоб перевірити, які пакети були встановлені зі сторонніх репозиторіїв (не CentOS) використовуємо команду:

#rpm -qa --qf '% %\n' grep -v CentOSgpg-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

Для відображення пріоритетів для всіх встановлених репозиторіїв використовуємо команду

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-основа] 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>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).