fbpx Certificação Linux: Gerenciamento de Pacotes Red Hat RPM e YUM [Guia Básico]

Blog

Gerenciamento de Pacotes Red Hat RPM e YUM [Guia Básico]

📅 07/03/2019 ⏱ 16 min ✍️ Uira Ribeiro
Linuxcomandoshow-to
Gerenciamento de Pacotes Red Hat RPM e YUM [Guia Básico]

O Red Hat Package Manager e o YUM são um poderosos gerenciadores de pacotes que permite ao administrador instalar, remover e obter informações sobre pacotes. É um método de distribuição de software largamente usado em várias distribuições Linux, como o Red Hat Enterprise Linux, CentOS e Fedora.

O Gerenciamento de Pacotes Red Hat RPM e YUM possibilita instalar pacotes, fazer atualizações de software, grupos de software e mais dezenas de tarefas. É tão poderoso quanto o dpkg e apt-get.

Este gerenciador de pacotes realiza de forma simples a instalação, manutenção e remoção de pacotes de software.

Cada pacote rpm contém programas binários, arquivos de configuração, documentação e informações de como eles devem ser instalados e suas dependências.

Este utilitário mantém um banco de dados de todos os pacotes instalados e seus arquivos, controle de versões e dependências.

Em algumas situações especiais o banco de dados pode ficar corrompido. O gerenciador de pacotes conta com funções especiais para recuperar a sua integridade.

Os pacotes rpm acompanham a seguinte nomenclatura:

  • Nome_do_pacote: Assim como nos pacotes Debian, um pacote rpm tem um nome curto que descreve seu conteúdo. Se mais de uma palavra for utilizada é utilizado o traço;
  • Versão do Software: Cada arquivo rpm tem a sua versão que podem variar de acordo com os pacotes. Geralmente é numérica e são separadas do nome por um traço;
  • Distribuição do Software: Cada arquivo também pode ter uma distribuição ou empacotamento diferente;
  • Arquitetura: O pacote rpm costuma carregar o nome da arquitetura para a qual foi montado;
  • Sufixo: Ele utiliza a terminação .rpm para fácil identificação.

Podemos encontrar também pacotes com nomes no formato pacote-versao.src.rpm. Esses pacotes contêm os arquivos fontes de um software e são na grande maioria independentes de arquitetura.

O gerenciador de pacotes rpm é utilizado por várias distribuições Linux. Mas os pacotes podem diferir nas informações adicionais de uma distribuição para outra. Procure sempre utilizar pacotes feitos especificamente para a sua distribuição.

Este gerenciador também faz o controle de dependências entre os pacotes. Eles contêm informações das dependências de cada aplicativo, e essa informação é utilizada durante sua instalação ou remoção.

Caso a instalação de um novo pacote requeira outro, o rpm alertará o administrador.

A ferramenta rpm

O comando rpm é responsável pela instalação, remoção, atualização, conversão dos pacotes. Este comando é organizado primeiro em modos de operação, que podem ser: consulta, verificação, integridade, instalação, remoção, atualização e reconstrução do banco de dados rpm. Cada modo de operação pode ou não conter várias opções disponíveis.

Os modos de operação mais frequentes são:

Para consultar a base de dados do rpm

# rpm {-q|—query} [opções de consulta] nome_do_pacote

Exemplo:

# rpm –q bash

bash-2.05b-207

Para verificar o status dos pacotes com rpm

# rpm {-V|—verify} nome_do_pacote

Exemplo:

# rpm -V snort-2.0.1-98.i586.rpm

package snort-2.0.1-98.i586.rpm is not installed

Para verificar a assinatura e integridade dos pacotes com rpm

# rpm {-K|—checksig} nome_do_pacote

Exemplo:

# rpm -K libpcap-0.7.2-37.i586.rpm

libpcap-0.7.2-37.i586.rpm: sha1 md5 gpg OK

Para instalar um novo pacote com rpm:

# rpm {-i|—install} [opções de instalação] nome_do_pacote

Exemplo:

# rpm –i libpcap-0.7.2-37.i586.rpm

Para instalar um novo pacote mostrando detalhes da instalação:

# rpm –ivh libpcap-0.7.2-37.i586.rpm

Preparing...                ########################################### [100%]

   1:libcap                 ########################################### [100%]

Para atualizar um pacote com rpm:

# rpm {-U|—upgrade} [opções de instalação] nome_do_pacote

Exemplo:

# rpm -U libpcap-0.7.2-37.i586.rpm

package libpcap-0.7.2-37 is already installed

Para remover um pacote com rpm:

# rpm {-e|—erase} [opções de remoção] nome_do_pacote

Exemplo:

# rpm –e libpcap-0.7.2-37.i586.rpm

Para refazer o banco de dados RPM:

# rpm {—initdb|—rebuilddb}

Exemplo:

# rpm —initdb

Para consultar as dependências de um pacote com rpm:

# rpm {—qpR }

Exemplo:

# rpm —qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4

python >= 2.3

python(abi) = 2.4

python-crypto >= 2.0

python-psyco

python-twisted >= 2.0

python-zopeinterface

rpmlib(CompressedFileNames) = 2.6

Para instalar um pacote ignorando as dependências (algo bem estúpido de se fazer):

# rpm {—ivh --nodeps }

Exemplo:

# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]

   1:BitTorrent             ########################################### [100%]

Para listar os pacotes rpm instalados recentemente:

# rpm {—qa --last }

Exemplo:

# rpm -qa --last

kernel-headers.x86_64     Sex 06 Mar 2019 11:55:01 BRT

graphviz-gd.x86_64         Sex 06 Mar 2019 11:55:00 BRT

file-devel.x86_64             Sex 06 Mar 2019 11:55:00 BRT

Para saber a qual pacote rpm um arquivo pertence:

# rpm {—qf arquivo }

Exemplo:

# rpm -qf /usr/bin/htpasswd

httpd24-tools-2.4.10-15.58.amzn1.x86_64

Para saber informações de um determinado pacote instalado:

# rpm {—qi nome_do_pacote }

Exemplo:

# rpm -qi httpd24

Name        : httpd24

Version     : 2.4.10

Release     : 15.58.amzn1

Architecture: x86_64

Install Date: Sex 13 Fev 2015 21:56:14 BRST

Group       : System Environment/Daemons

Size        : 3792099

Para verificar a integridade dos arquivos instalados com o banco de dados de pacotes:

# rpm {—Va }

Exemplo:

# rpm -Va

S.5....T.  c /etc/sysconfig/svnserve

....L....  c /etc/localtime

..?......    /usr/sbin/glibc_post_upgrade.x86_64

S.5....T.  c /etc/httpd/conf/httpd.conf

..?......    /usr/sbin/suexec

As opções de consulta de informações de pacotes mais frequentes são:

  • -a: Lista todos os pacotes instalados no sistema;
  • -f arquivo: Lista o nome do pacote que contém o arquivo procurado;
  • -p nomedopacote: Mostra se um determinado pacote está instalado;
  • -i nomedopacote: Mostra informações extras sobre um determinado pacote;
  • -l nomedopacote: Mostra a lista dos arquivos que um pacote contém;
  • -R nomedopacote: Mostra a lista de dependências que um pacote necessita para ser instalado.

As opções de instalação e atualização de pacotes mais frequentes são:

  • —force: Esta opção força a instalação de um pacote e seus arquivos mesmo se ele já estiver instalado. Esta opção inclusive força a instalação de um pacote mais antigo por cima de um mais novo
  • -h: Esta opção mostra o progresso da instalação;
  • —nodeps: Esta opção desabilita a checagem de dependências para a instalação de um pacote;
  • -v: Mostra informações extras durante a instalação e atualização dos pacotes;
  • -vv: Mostra muito mais informações durante a instalação e atualização dos pacotes. Geralmente utilizada por desenvolvedores.

As opções de desinstalação dos pacotes são:

  • —nodeps: Desabilita a checagem de dependências, desinstalando o pacote mesmo que ele seja necessário por outros;
  • —test: Testa a remoção do pacote, sem de fato removê-lo. É útil para testar se a remoção do pacote vai causar algum dano ao sistema ou aplicativo.

Prefira ao atualizar um pacote por uma versão mais nova utilizar o modo –U. Assim o pacote mais antigo será removido, o pacote novo será instalado e as configurações serão mantidas.

Ferramenta YUM

O Yum é um acrônimo para Yellow dog Updater, Modified. É uma ferramenta utilizada para gerenciar a instalação e remoção de pacotes em distribuições Linux, que utilizam o sistema RPM.

É um gerenciador de pacotes de arquivos similar ao APT-GET que lida automaticamente com dependências computando-as e resolvendo o que deve ser feito para tratá-las.

Ele possui um arquivo de configuração que especifica quais os repositórios que o YUM deve utilizar para procurar e baixar os pacotes RPM.

Nem sempre um Linux baseado em RPM terá o gerenciador de pacotes YUM instalado. Se for necessário instalar o YUM, ele pode ser conseguido no site http://yum.baseurl.org.

O comando para instalação é:

# rpm -ivh yum.rpm

O YUM necessita que você faça a configuração dos repositórios de pacotes no arquivo de configuração yum.conf

Exemplo:

# vi /etc/yum.conf

[fedora-us-3-core]

name=Fedora Core 3 — Fedora US mirror

baseurl=http://SERVERNAME/fedora/fedora/$releasever/$basearch/RPMS.os

[fedora-us-3-updates]

name=Fedora Core 3 Updates — Fedora US mirror

baseurl=http://SERVERNAME/fedora/fedora/$releasever/$basearch/RPMS.updates

Além do arquivo de configuração /etc/yum.conf, o YUM permite que você coloque arquivos de configuração de repositórios no diretório /etc/yum.repos.d/. Neste diretório ficam as configurações de cada repositório.

Você pode adicionar repositórios extras ou de software em “beta-teste” na lista de repositórios do YUM.

Alguns comandos do yum:

  • yum list: Lista todos os pacotes disponíveis;
  • yum check-update ou yum list updates: Verifica se há pacotes disponíveis para um update;
  • yum update: Faz o update de seu sistema;
  • yum install <pacote(s)>:Instala um pacote específico e suas dependências;
  • yum remove <pacote(s)>: Remove um pacote específico
  • yum info < pacote >: Apresenta informações básicas de um determinado pacote.

Veja os exemplos:

Para instalar um pacote com yum:

# yum install postgresql

Resolving Dependencies

Install       2 Package(s)

Is this ok [y/N]: y

Package(s) data still to download: 3.0 M

(1/2): postgresql-9.0.4-5.fc15.x86_64.rpm          | 2.8 MB     00:11

(2/2): postgresql-libs-9.0.4-5.fc15.x86_64.rpm    | 203 kB     00:00

------------------------------------------------------------------

Total                                        241 kB/s | 3.0 MB     00:12    

Running Transaction

  Installing : postgresql-libs-9.0.4-5.fc15.x86_64             1/2

  Installing : postgresql-9.0.4-5.fc15.x86_64                   2/2

Complete!

Para fazer update dos pacotes instalados com yum:

# yum update

             Plugins carregados: priorities, update-motd, upgrade-helper

             amzn-main/latest

             Resolvendo dependências

             --> Executando verificação da transação

             ---> O pacote aws-cli.noarch 0:1.7.5-1.2.amzn1 será atualizado

             ---> O pacote aws-cli.noarch 0:1.7.12-1.3.amzn1 será uma atualização

             --> Resolução de dependências finalizada

             Dependências resolvidas

            ==============================================================

             Package    Arq.               Versão              Repo                Tam.

            ==============================================================

             Instalando:

             kernel   x86_64      3.14.34-27.48.amzn1      amzn-updates          16 M

             Atualizando:

             aws-cli   noarch     1.7.12-1.3.amzn1          amzn-updates         604 k

             Resumo da transação

            ==============================================================                Instalar   1 Package  (+4 Dependent packages)

             Upgrade    1 Package

             Tamanho total do download: 16 M

             Is this ok [y/d/N]:

Para remover um pacote com yum:

# yum remove  postgresql

Resolving Dependencies

---> Package postgresql.x86_64 0:9.0.4-5.fc15 will be erased

Is this ok [y/N]: y

Running Transaction

              Erasing    : postgresql-9.0.4-5.fc15.x86_64       1/1

Removed:

             postgresql.x86_64 0:9.0.4-5.fc15

Complete!

Para procurar todos os pacotes com uma determinada palavra

# yum search firefox

Loaded plugins: langpacks, presto, refresh-packagekit

============== N/S Matched: firefox ======================

firefox.x86_64 : Mozilla Firefox Web browser

gnome-do-plugins-firefox.x86_64 : gnome-do-plugins for firefox

mozilla-firetray-firefox.x86_64 : System tray extension for firefox

mozilla-adblockplus.noarch : Adblocking extension for Mozilla Firefox

mozilla-noscript.noarch : JavaScript list extension for Mozilla Firefox

Name and summary matches only, use “search all” for everything.

Para obter informações sobre um determinado pacote usando o yum:

# yum info mysql

yum info mysql

Plugins carregados: priorities, update-motd, upgrade-helper

newrelic                                                                                                                  59/59

Pacotes instalados

Nome        : mysql

Arquitetura        : noarch

Versão     : 5.5

Lançamento     : 1.6.amzn1

Tamanho        : 0.0 

Repo        : installed

Para ver todos os pacotes disponíveis no repositório do yum:

# yum list

Pacotes instalados

GeoIP.x86_64                        1.4.8-1.5.amzn1                @amzn-main  

GeoIP-devel.x86_64                  1.4.8-1.5.amzn1                @amzn-main  

PyYAML.x86_64                       3.10-3.6.amzn1                 installed    

acl.x86_64                          2.2.49-6.9.amzn1               installed   

acpid.x86_64                        1.0.10-2.1.6.amzn1             installed   

alsa-lib.x86_64                     1.0.22-3.9.amzn1               installed   

apr.x86_64                          1.5.0-2.11.amzn1               @amzn-updates

(…)

Para saber a qual pacote um determinado arquivo pertence:

# yum provides /etc/sysconfig/nfs

Plugins carregados: priorities, update-motd, upgrade-helper

1:nfs-utils-1.2.3-39.15.amzn1.x86_64 : NFS utilities and supporting clients and daemons for the kernel NFS server

Repo        : amzn-main

Resultado a partir de:

Nome de arquivo    : /etc/sysconfig/nfs

Para saber quais são os repositórios ativos no YUM:

# yum repolist

id do repo                         nome do repo       status

amzn-main/latest                  amzn-main-Base     5.019

amzn-updates/latest               amzn-updates-Base  1.085

newrelic/x86_64                    New Relic packages 59

repolist: 6.163

O comando yumdownloader

O comando yumdownloader faz o download dos arquivos RPM dos repositórios do YUM. É útil para você baixar os pacotes para posterior instalação, ou quando vai instalar pacotes em várias máquinas, sem a necessidade de baixar várias vezes o mesmo pacote.

Exemplo:

$ yumdownloader httpd24

amzn-main/latest                              | 2.1 kB     00:00    

amzn-updates/latest                           | 2.3 kB     00:00    

httpd24-2.4.10-15.58.amzn1.x86_64.rpm         | 1.3 MB     00:00

Aprenda o Red Hat Enterprise Linux com o Curso Preparatório para RHCSA da Certificação Linux. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp