segunda-feira, 25 de junho de 2012

Prioridades entre os repositórios no Yum

Nas distribuições Linux que usam o gerenciador de pacotes Yum, isto inclui o Fedora e o CentOS, existe um plugin para o Yum que permite ordenar em prioridade os repositórios de pacotes. Esta extensão para o Yum faz com que um pacote de repositório com baixa prioridade não substitua o pacote instalado de um repositório com alta prioridade, mesmo que seja de uma versão maior.

No CentOS este plugin passa a ser bem interessante, porque nesta distribuição são necessários muitos repositórios de terceiros para complementar a oferta de softwares e é comum o conflito de pacotes entre eles. Como a distro Fedora está bem servida com o repositório RPM Fusion, não é tão necessário mais repositórios, reduzindo o risco de conflitos. O pacote yum-plugin-priorities é fornecido pelos repositórios oficiais destas duas distros.

Para instalar o pacote deste plugin, execute o comando:

# yum install yum-plugin-priorities

A configuração do plugin se dá pelo arquivo "/etc/yum/pluginconf.d/priorities.conf", basicamente com a edição da linha "enabled = 1", onde o valor 1 habilita a ação do plugin. Em seguida é preciso editar cada arquivo .repo, localizados em "/etc/yum.repos.d/", incluindo a seguinte linha em cada seção:

priority=N

No lugar de N coloca-se um valor entre 1 (maior prioridade) a 99 (menor prioridade). Usualmente classifica-se os repositórios oficiais com prioridade maior e os repositórios de terceiros com prioridade menor. O importante é não dar a mesma prioridade para repositórios que onde ocorram conflito de pacotes, principalmente entre os repositórios de terceiros. Escolha um para prevalecer, faça uma distribuição dos valores.

Um exemplo de um trecho do arquivo "/etc/yum.repos.d/CentOS-Base.repo", editado com as linhas "priority=N":

[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

[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

Este controle de prioridades é importante pois o Yum sempre atualiza o pacote por uma versão maior, independente de qual repositório está vindo este novo pacote. E um pacote fornecido por terceiro pode não estar plenamente compatível com os demais pacotes instalados. Por isso a prioridade deve ser dos pacotes oficiais e de repositórios não conflitantes.

Nenhum comentário:

Postar um comentário