Como configurar o yum para utilizar somente um repositório?

Como configurar o yum para utilizar somente um repositório?

Primeiro, o que gerou esta motivação?

Acompanho a lista fedora-users-br e vi este email do Ricardo Vendramini: http://lists.fedoraproject.org/pipermail/br-users/2010-November/013615.html

Para reduzir o uso de banda, surgiu a ideia de se configurar um proxy squid. Quando uma máquina for se atualizar, ela baixa os pacotes e o squid os armazena em cache. Quando uma segunda máquina buscar esta mesma atualização, o squid irá entregar o arquivo do cache ao invés de baixar novamente, economizando tempo (rede interna provavelmente é mais rápida que Internet) e banda.

O problema: o yum tem uma lista de mirrors possíveis e, a cada vez, ele pode utilizar um mirror diferente da última. Com isso, o squid terá diversas cópias de um mesmo arquivo mas vindo de domínios diferentes. Assim, além de não reduzir o uso da banda (ideia inicial) ainda se ocupa espaço de disco do cache que poderia ser melhor utilizado com outros arquivos.

Solução? “Forçar” o yum a baixar sempre de um mesmo mirror.
Para isso, deve-se configurar os repositórios “updates” e “fedora” (assim tanto os updates como eventuais instalações de pacotes serão armazenados no cache do squid). Então, edite o arquivo “/etc/yum.repos.d/fedora-updates.repo“, comente a linha “mirrorlist” e descomente “baseurl“. Em “baseurl“, coloque o endereço de um dos mirrors. Como sugestão, estou utilizando o mirror da Universidade Federal do Paraná que normalmente é bem rápido para usuários no Brasil.

[updates]
name=Fedora $releasever – $basearch – Updates
failovermethod=priority
baseurl=http://fedora.c3sl.ufpr.br/linux/updates//$releasever/$basearch/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

Também deve-se editar o “/etc/yum.repos.d/fedora.repo“:

[fedora]
name=Fedora $releasever – $basearch
failovermethod=priority
baseurl=http://fedora.c3sl.ufpr.br/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

Repita o procedimento em todas as máquinas com Fedora na rede. Feito isto, basta utilizar novamente o comando “yum update” para que todas as instalações e atualizações venham sempre do mesmo mirror.

Outra ideia para melhorar o desempenho, desabilitar o uso do plugin “yum-presto”. O presto utiliza o conceito de deltarpm para reduzir o tamanho dos pacotes de atualização. O deltarpm é um diff binário entre duas versões de rpm. Basicamente você baixa somente a diferença entre duas versões de um mesmo pacote e não mais o pacote todo. Ex: é liberada uma atualização do OpenOffice onde apenas um arquivo foi modificado. Este arquivo tem 1 Mbyte enquanto o pacote todo tem 50. O deltarpm teria aproximadamente 1 Mbyte e se teria uma economia de 49 Mbytes de download. Veja um outro artigo que escrevi sobre o yum presto aqui.

Mas como desabilitar o yum-presto melhora o desempenho? Como você terá todos os pacotes (ou pelo menos os mais utilizados) no cache do squid, você não estará fazendo o download de um pacote grande, você estará utilizando uma cópia localizada no cache na rede interna. Assim, o download será rápido e não precisará de tempo para reconstruir os pacotes de atualização, o que normalmente leva alguns minutos. Só para reforçar, yum-presto economiza muito download, mas aumenta o tempo de atualização devido a reconstrução do pacote. Se o tempo de download é muito baixo (rede interna), provavelmente não compensa o tempo de reconstrução, por isso a sugestão de desabilitar o yum-presto.

E como fazer isso? Basta editar o arquivo “/etc/yum/pluginconf.d/presto.conf” e configurar “enabled=0“. Pronto, da próxima vez que utilizar o yum, o plugin presto não será carregado.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *