2. Estratégias de Atualização usando yum
por Daniel C. Marques
Novembro de 2010
Rio de Janeiro
Este texto é distribuído sob a Licença Creative Commons - Attribution-NoDerivs. Para ver uma
cópia desta licença, visite http://creativecommons.org/licenses/by-nd/3.0/br/ ou envie um
pedido por escrito para Creative Commons, 171 Second Street, Suite 300, San Francisco,
California 94105, USA.
Para entrar em contato com o autor: contato@danielmarques.com.br
A ilustração da capa foi gentilmente cedida por Allan C. Chaudar, do blog Miaudote
(http://www.miaaudote.blogspot.com/). Você pode conhecer o trabalho de Allan visitando
http://gandalf67.deviantart.com/.
3. Conteúdo
1- Introdução ............................................................................................. 3
O que é o yum?............................................................................................................. 3
Como o yum funciona?................................................................................................. 3
E se eu não gostar da linha-de-comando?.................................................................... 4
2 - Dicas para definir uma estratégia de atualização .................................. 5
Começando: Inventário de softwares........................................................................... 5
Como se manter informado sobre atualizações ................................................................... 5
Obtendo as atualizações ....................................................................................................... 6
Código-fonte versus Pacotes................................................................................................. 6
Antes de prosseguir, teste ............................................................................................ 7
Ambientes de teste ............................................................................................................... 7
Algumas sugestões sobre testes ........................................................................................... 7
Outros fatores que devem ser considerados ............................................................... 8
3 - Usando repositório local com yum........................................................ 9
Preparação do repositório.......................................................................................... 10
Configuração o ambiente para utilizar um repositório yum ...................................... 10
Passo 1: Criação do diretório do repositório....................................................................... 10
Passo 2: Configuração dos clientes yum ............................................................................. 11
Manutenção do repositório........................................................................................ 12
Notificação de atualização por e-mail................................................................................. 12
4 - Outras dicas úteis................................................................................ 13
5 – Considerações Finais .......................................................................... 13
Referências .............................................................................................. 14
5. 4 Estratégias de atualização usando yum – Dicas e sugestões
O yum é utilizado diretamente pela linha-de-comando. Uma lista dos comandos básicos pode
ser encontrada aqui: http://yum.baseurl.org/wiki/YumCommands.
E se eu não gostar da linha-de-comando?
Se você não é adepto da linha-de-comando, sem problemas. Existem diversas
interfaces gráficas (GUI) para o yum. As mais conhecidas são, provavelmente, o yum Extender
(também conhecido como yumex, disponível em http://www.yum-extender.org/) e o
PackageKit (http://www.packagekit.org/).
Ainda que as interfaces sejam práticas, nem sempre é possível – ou ainda, desejável -
utilizá-las. Portanto, se você está realmente considerando utilizar o yum, recomendo que você
guarde com carinho o link com os comandos básicos. Certamente será útil.
Figura 1 - Adicionar/Remover Software no Packagekit
7. 6 Estratégias de atualização usando yum – Dicas e sugestões
Alguns websites que podem ser interessantes:
• CAIS-RNP4
http://www.rnp.br/cais/: .
• Informes de Segurança do Computer Emergency Response Team (CERT)5
http://www.cert.org/advisories/
da
Universidade de Carnegie Mellon: .
Como veremos mais adiante, é possível configurar o yum para notificar atualizações
nos repositórios públicos dos softwares utilizados. Ainda assim é recomendado acompanhar os
informes dos distribuidores ou responsáveis pelo produto.
Obtendo as atualizações
Note que existem diversas maneiras de obter as atualizações. A mais comum é através
do site do desenvolvedor. A vantagem aqui é a certeza de uma versão confiável, além ter
acesso mais rápido as atualizações. Alguns desenvolvedores disponibilizam pacotes DEB e RPM
no momento do lançamento da nova versão ou correção, com builds específicos para certas
distribuições.
Alternativamente, o próprio repositório das distribuições fornece pacotes com as
atualizações. Entretanto, existe alguma demora entre a publicação da atualização pelo
desenvolvedor e a disponibilização do pacote no repositório da distribuição. Isso acontece por
que a atualização passa por um ciclo de testes, antes de ser disponibilizada aos usuários. A
vantagem é a grande compatibilidade com o sistema utilizado. Note que algumas distribuições
podem utilizar dependências diferentes para determinados serviços.
Código-fonte versus Pacotes
Você já deve ter notado que softwares de código aberto podem ser disponibilizados
através de código-fonte ou pacotes. No geral, sugiro que você opte pela utilização de pacotes
sempre que possível (de preferência fornecidos pela sua distribuição). Dessa forma você
consegue manter um controle melhor sobre o que está sendo instalado, garante que os
arquivos serão copiados para diretórios consistentes e – caso utilize um gerenciador de
pacotes como o yum – a resolução de dependências.
Por outro lado, alguns ambientes possuem políticas rígidas quanto ao software
instalado. Pode ser que haja a necessidade de analisar o código-fonte antes de disponibilizar o
software na rede. Nesse caso, atualizar utilizando os fontes fornecidos pelo desenvolvedor é o
mais recomendado. Contudo, você ainda pode gerar seus próprios pacotes e disponibilizá-los
em um repositório interno. Apesar de simples, exige algum tempo de aprendizado. Um bom
ponto de partida para entender como esse processo funciona é o Fedora RPM Guide
disponível online gratuitamente.
4
O Centro de Atendimento a Incidentes de Segurança da RNP é o principal CSIRT acadêmico do Brasil.
Para saber mais sobre a RNP visite: http://www.rnp.br/.
5
O CERT de Carnegie Mellon é provavelmente o Grupo de Resposta a Incidentes de Segurança mais
conhecido do mundo.
9. 8 Estratégias de atualização usando yum – Dicas e sugestões
• Caso seja um serviço (como um servidor web, por exemplo) teste de diferentes
clientes/hosts.
• Se um grande grupo de usuários utiliza o software em questão no dia-a-dia-, pode ser
interessante incluir alguns em um grupo de testes. Será de grande ajuda se, é claro,
você julgar necessário.
Para a atualização do Kernel, outras dicas interessantes são:
• Procure manter uma (acredite, é o bastante) versão anterior funcional do Kernel.
• Observe o processo de boot, o comportamento dos serviços e a detecção de
hardware.
• Teste serviços e aplicações com o novo kernel.
É importante também informar aos usuários sobre novas atualizações, e mantê-los a
par de qualquer modificação e problema que elas possam resultar.
Outros fatores que devem ser considerados
Ao estabelecer sua estratégia de atualização você deve levar em conta alguns fatores,
como espaço em disco, as conexões de rede e volume de dados que trafegarão na rede. Note
que isso depende, basicamente, de quantas máquinas serão atualizadas, com que freqüência e
se você possui diferentes arquiteturas compondo a sua infraestrutura.
Um repositório não é diferente de outros serviços disponíveis no seu ambiente. A
preocupação em ajustá-lo para atender as suas necessidades será igualmente importante.
11. 10 Estratégias de atualização usando yum – Dicas e sugestões
Essa estratégia nos fornece algumas vantagens:
• Maior controle sobre que softwares serão atualizados.
• Redução do tráfego com a Internet.
• Atualizações mais rápidas.
Preparação do repositório
A principal sugestão é em relação ao particionamento do disco. Crie uma partição
exclusiva para os pacotes de atualização. Essa medida evitará que o sistema pare de funcionar
caso o repositório cresça demais.
Como vimos anteriormente, a máquina também precisará de um servidor web ou FTP,
onde serão encontrados os pacotes utilizados. Existem duas formas de manter os arquivos
nesses diretórios: síncrona e assíncrona. No servidor local, você não precisará se preocupar
com isso (considerando que você colocará no repositório, manualmente, apenas os pacotes
previamente testados). Você pode, no entanto, desejar sincronizar o repositório de testes com
algum repositório yum remoto. Isso pode ser conseguido através da ferramenta reposync do
pacote yum-utils ou utilizando o comando wget.
Configuração do ambiente para utilizar um repositório yum
Daqui em diante, consideraremos a utilização de um servidor HTTP e da distribuição
CentOS 5 i386 para os nossos exemplos. Faça as devidas adaptações necessárias para o seu
ambiente.
Passo 1: Criação do diretório do repositório
O primeiro passo é a criação da estrutura de diretórios que irão compor o repositório,
que vai depender de qual seu objetivo com o repositório. Como desejamos criar um
repositório unicamente para atualizações, teremos a seguinte estrutura:
• Repositório Base: Conterá os pacotes RPM básicos da distribuição. Esses pacotes
podem ser copiados a partir do CD/DVD do CentOS, no diretório base.
• Repositório de Atualizações: Conterá os pacotes RPM com as atualizações. Podem ser
baixados da Internet ou copiados manualmente após o ciclo de testes. Seu diretório
será updates.
Criamos então o diretório principal e os subdiretórios do repositório:
Na primeira linha, usamos o comando mkdir para criar os diretórios base e updates.
Note que, da forma como esses diretórios foram criados, você pode ter várias versões do
CentOS na mesma máquina, bastando criar diretórios diferentes seguindo a mesma estrutura.
Copie os pacotes RPM existentes no DVD/CD para o diretório /var/www/
centos/5/os/i386/CentOS.
mkdir –pv /var/www/centos/5/{base,updates}/i386
mkdir –pv /var/www/centos/5/base/i386/CentOS
13. 12 Estratégias de atualização usando yum – Dicas e sugestões
Manutenção do repositório
É importar lembrar que os cabeçalhos devem ser atualizados sempre que um novo
pacote for inserido no repositório. Para isso, basta executar o comando abaixo:
Problemas com as atualizações podem ocorrer se os arquivos de cabeçalho estiverem
corrompidos ou inconsistentes. Tente remover o diretório reposdata e executar novamente o
comando createrepo. Normalmente, é o suficiente para que o problema seja resolvido.
Notificação de atualização por e-mail
Você pode direcionar seu repositório de testes para fazer atualizações a partir de um
repositório remoto (que pode ser o repositório da distribuição ou um repositório de terceiros,
por exemplo). Dessa forma, quando houver alguma modificação no repositório externo, você
poderá ser notificado.
Isto pode ser feito através das configurações do daemon yum-updatesd ou através
do script Yumnotifier. Ele está disponível para download a partir do seguinte endereço
http://prefetch.net/code/yumnotifier.html. Toda a documentação do script está presente no
seu cabeçalho.
createrepo -–update <caminho-para-repositorio>
15. 14 Estratégias de atualização usando yum – Dicas e sugestões
Referências
Bailey Edward C. RPM and Developers — How to Distribute Your Software More Easily With
RPM [Online] // Maximum RPM: Taking the Red Hat Package Manager to the Limit. - Red Hat,
Inc., 2000. - 8 de Novembro de 2010. - http://www.rpm.org/max-rpm/p5208.html.
CAIS-RNP Rede Nacional de Ensino e Pesquisa [Online] // Segurança em Redes. - Rede Nacional
de Ensino e Pesquisa. - 09 de Novembro de 2010. - http://www.rnp.br/cais/.
Citrix Systems, Inc [Online] // Xen.org. - 09 de Novembro de 2010. - http://www.xen.org/.
Foster-Johnson Eric, Ellis Stuart e Cotton Ben RPM Guide [Online] // Fedora Documentation. -
8 de Novembro de 2010. - http://docs.fedoraproject.org/en-
US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/index.html.
Hughes Richard [Online] // PackageKit website. - 8 de Novembro de 2010. -
http://www.packagekit.org/.
Jang Michael Linux Patch Management: Keeping Linux Systems Up To Date [Livro]. -
Crawfordsville : Prentice Hall, 2006. - 0-13-236675-4.
Milano Fabiano Nagios NRPE Monitor Yum Updates [Online] // KernelHardware.org. - 26 de
Junho de 2009. - 8 de Novembro de 2010. - http://www.kernelhardware.org/nagios-nrpe-
monitor-yum-updates/.
Monitoring Exchange [Online] // Monitoring Exchange website. - 10 de Novembro de 2010. -
http://www.monitoringexchange.org.
Nagios Enterprises [Online] // Nagios - The Industry Standard In Open Source Monitoring. - 10
de Novembro de 2010. - http://www.nagios.org/.
OCS Inventory Team [Online] // OCS Inventory NG web site. - 8 de Novembro de 2010. -
http://www.ocsinventory-ng.org/.
Portal Yats [Online] // openSUSE Wiki. - 8 de Novembro de 2010. -
http://en.opensuse.org/Portal:YaST.
Prefetch Technologies E-mail available yum updates [Online] // Prefetch Technologies
Website. - 10 de Novembro de 2010. - http://prefetch.net/code/yumnotifier.html.
Sofware Engineering Institute [Online] // CERT Website. - Carnegie Mellon University. - 09 de
Novembro de 2010. - http://www.cert.org/.
The RPM Team [Online] // RPM Project Wiki. - 8 de Novembro de 2010. -
http://www.rpm.org/.
The Yum Extender Team [Online] // Yum Extender website. - 09 de Novembro de 2010. -
http://www.yum-extender.org/.