Поиск по сайту

Температура за бортом

Войти в Гараж



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

Обновлено 30.10.2013 13:16
 
Rambler's Top100
 
www.garage.zabkray.net , Powered by HardWorm Chita 2010 - 2023