You are on page 1of 3

Instalando pacotes utilizando RPM

Este documento é indicado para usuários que, por força maior (trabalho), estão usando ou
tra distribuição, a qual não é habituado e novos usuários que estão utilizando distribuição va
ante de Red Hat.
A maioria das distribuições Linux trabalha com o conceito de pacotes binários para a i
nstalação padronizada de softwares.
Os pacotes mais comuns são o deb, originário do Debian e utilizado em suas distribuições
derivadas, e o rpm, originário do Red Hat e utilizada em distribuições derivadas como
Mandriva, Fedora, CentOS, PCLinuxOS, Scientific, StartCom, openSUSE e outros.
Daí os seus nomes DEB, oriundo de Debian, e RPM, acrônimo de RedHat Packet Manager.
O que é um pacote binário
Um pacote binário de um programa é composto por alguns arquivos, bibliotecas, a docu
mentação do programa, scripts para que eles sejam instalados rápida e corretamente, e
a relação de quais outros pacotes ele depende para seu funcionamento proposto.
Os pacotes binários pré-compilados RPM possuem nomes *.i586.rpm, destinados para pro
cessadores com arquitetura de 32 bits, *.x86_64.rpm, destinados para processador
es com arquitetura de 64 bits, ou ainda *.noarch.rpm, independentes de arquitetu
ra de processador, geralmente contendo documentação ou programas feitos em linguagen
s interpretadas. E ainda os pacotes fonte, que podem ser recompilados para gerar
os pacotes binários, e possuem nomes *.src.rpm.
Estes com extensão .src.rpm, contém o código-fonte original do programa, instruções ao pro
grama que compilará o pacote fonte para gerar o pacote binário, no caso dos rpms, o
arquivo tem extensão .spec e, geralmente, patches que são arquivos contendo diferenças
no código-fonte, necessárias para a compilação ou adaptação do programa à distribuição.
Cada distribuição possui um código no nome do arquivo rpm para facilitar a identificação d
a distribuição para qual foi preparado:
Red Hat: *rh9.noarch.rpm
Mandriva: *mdv2008.1.i586.rpm
Fedora: *fc9.i386.rpm
PCLinuxOS: *pclos2007.i586.rpm
CentOS: *centos.noarch.rpm
Em alguns casos há plena compatibilidade entre pacotes, pré-compilados para distribu
ições distintas, como RHEL para CENTOS e vice-versa.
Comando rpm
Para que seja possível instalar um pacote, é necessário um software que conheça o tipo d
e pacote, confira as dependências e aplique as regras de instalação. Estes softwares são
o rpm para pacotes .rpm e o dkpg para pacotes .deb.
Só que estes programas dispõem somente de recursos básicos, não fazendo coisas como down
loads e instalação automática dos pacotes marcados como dependências. É aí que entram os sof
twares de gerenciamento de pacotes, como o conhecido apt ou aptitude do Debian,
o apt-rpm do Conectiva Linux, o urpmi do Mandriva Linux e o yum do CentOS, Red H
at e Fedora.
No Linux é possível a utilização do gerenciador de pacotes diferente dos padronizados na
distribuição, exemplo Fedora utilizando apt, entretanto exigirá uma maior dedicação do ut
ilizador, e não é o escopo deste documento.
Serão citadas somente as opções mais utilizadas, o comando rpm tem diversas opções, que po
dem ser, posteriormente se houver interesse, analisadas com man rpm.
Instalação de um pacote:
# rpm -i pacote
ou
# rpm -install pacote
Para uma melhor visualização do que está acontecendo, em geral costuma-se usar também as
opções -v (verbose, que imprime detalhes da execução) e -h (para imprimir "#" e apresen
tar a evolução de progressão).
O comando ficaria então:
# rpm -ivh pacote
Instalação de um pacote e dependências ou de vários pacotes ao mesmo tempo:
# rpm -ivh pacote1 dependência1 dependência2 ... pacote2
Caso o programa já esteja instalado e o pacote que se quer instalar é de uma versão ma
is recente, deve-se utilizar a opção -U para atualizar (update) o pacote, que faz a
remoção da versão antiga e a instalação da versão recente em um único passo.
Ignorando as dependências ou de um ou de vários pacotes ao mesmo tempo:
# rpm -ivh --nodeps pacote1 pacote2
Atualização de pacote:
# rpm -U pacote
ou
# rpm -upgrade pacote
ou
# rpm -Uvh pacote (para mais detalhes de execução)
Instalação/atualização forçada de pacotes:
Embora a opção -force possa ser usada juntamente com a opção -i ou -U para instalação ou atu
alização forçada de pacotes, isto é, sem que todas as dependências tenham sido satisfeitas
, NÃO É RECOMENDADA, pois o programa terá grandes chances de não funcionar, além de fazer
com que o rpm ou qualquer outra ferramenta de gerenciamento de pacotes tenda a r
emover o programa por causa das dependências quebradas.
Não tente usar gerenciadores de pacotes feitos para outras distribuições diferentes da
que está em uso, pois geralmente causam estes problemas quando mal configuradas.
Remoção de pacotes:
# rpm -e pacote
ou
# rpm -e pacote1 pacote2 ... pacoteN
Consultas a pacotes:
# rpm -qi pacote
Dá informações do pacote caso já esteja instalado.
# rpm -qpi pacote-versão.i586.rpm
Dá informações sobre o pacote contido em pacote-versão.i586.rpm, que não precisa estar ins
talado.
# rpm -qa
Lista TODOS os pacotes instalados no sistema.
# rpm -qa | grep palavra
Exibe o pacote filtrado com a palavra de busca com o grep.
Compilação de pacotes fonte para a geração de pacotes binários
Embora nem todo mundo precise recompilar os pacotes fonte .src.rpm, às vezes isso
pode ser útil para aproveitar pacotes fonte de outras distribuições ou de versões mais r
ecentes ou experimentais (cooker) da distribuição Linux em uso. Isso pode ser feito
com:
# rpmbuild -rebuild pacote.src.rpm
Este comando instala o pacote fonte e recompila-o para gerar o(s) pacote(s) binári
o(s) derivados.
# rpm -ivh pacote.src.rpm
Este comando instala o pacote a partir do fonte, o compilando especificamente pa
ra a arquitetura do processador, o que otimiza o desempenho do programa para o h
ardware proposto, entretanto se gerencia do gerenciador de pacotes, ou seja, ise
nto de verificações de atualização e correções.
# rpmbuild -bb arquivospecdopacote.spec
Este comando gera um novo rpm para ser instalado, como apresentado nos tópicos ant
eriores.
Para compilar e gerar o(s) pacote(s) binário(s) derivados conforme instruções contidas
no arquivospecdopacote.spec, se faz necessário colocar os arquivos binários em dire
tórios específicos. no Red Hat, Fedora e CentOS coloca-os em /usr/src/redhat/SOURCES
/; no Mandriva coloca-os em /usr/src/RPM/SPECS/ ; nas outras distribuições RedHat-li
ke não foi pesquisado, podendo conseguir estas informações com o rpmbuild da distribuição.