O Red Hat Package Manager – RPM é um poderoso gerenciador 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, além do Red Hat.

Ele também possibilita construir pacotes a partir de arquivos fonte, verificar a assinatura digital, simular uma instalação, dentre outras. É 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 separada 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

Gostou desta aula? Conheça todos os outros comandos do curso de LPIC 101. E veja como passar no exames da LPIC-1

Gerenciamento de Arquivos Red Hat RPM e YUM
Classificado como:            

Deixe uma resposta

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.