O RPM é um poderoso gerenciador de pacotes que permite ao administrador instalar, remover e obter informações sobre pacotes. Com o RPM é possível também reparar um banco de dados danificado, construir pacotes a partir de arquivos fonte, verificar a assinatura digital de pacotes RPM, simular uma instalação, entre outras coisas. O RPM oferece uma grande gama de funcionalidades, no entanto, serão mostrados aqui apenas as mais utilizadas, devendo o administrador consultar a documentação do aplicativo para obter mais detalhes.
Instalar pacotes utilizando utilizando o comando rpm é bastante simples. Abra um terminal e, estando no mesmo diretório onde está o pacote que se deseja instalar, digite:
# rpm -i pacote-versao.i386.rpm |
A opção -i informa ao comando que você deseja instalar um pacote. É recomendado que o administrador utilize também as opções v (verbose – modo detalhado) e h (inclui linhas de progresso) ao instalar um pacote, ou seja, rpm -ivh mostra mais informações sobre o andamento do processo.
Caso o pacote a ser instalado necessite que outro pacote tenha sido previamente instalado, o RPM apresentará uma mensagem de erro mostrando quais dependências não foram atendidas para a instalação deste pacote. Será necessário então instalar os pacotes indicados para poder então instalar com sucesso o pacote que originalmente se queria instalar. Será mostrado mais adiante um modo de fazer isso automaticamente.
Caso se deseje atualizar um pacote já instalado no sistema por uma versão mais nova em vez do -i utilize a opção -U, assim o pacote mais antigo será removido, o pacote novo será instalado e as configurações serão mantidas.
Para remover um pacote com o rpm abra um terminal e digite:
# rpm -e nome_do_pacote |
Ao remover um pacote não é necessário utilizar o nome do pacote completo, isto é, não utilize nome-versão-release.rpm, mas sim apenas o nome do pacote. Utilize a versão apenas se existirem duas versões do pacote instalado e se desejar remover uma delas.
Caso algum pacote instalado no sistema dependa do pacote que se deseja remover, o RPM não fará a desinstalação e emitirá uma mensagem de erro informando que dependências seriam quebradas com isto. Caso seja realmente necessário, o administrador poderá utilizar a opção --nodeps para evitar que o RPM faça essa verificação, mas isso não é recomendado, pois poderá danificar o sistema.
O RPM pode ser utilizado para obter mais informações sobre os pacotes, tanto os já instalados quanto os não instalados. A forma básica para o modo de consulta é rpm -q[opção] pacote. Será mostrado a seguir, algumas das consultas mais comuns utilizando-se o RPM:
Obtendo informações de um pacote:
$ rpm -qi bash Name : bash Relocations: (not relocatable) Version : 2.05b Vendor: Conectiva Release : 42313cl Architecture: i386 Group : Base License: GPL Size : 772573 Install Date: Qui 04 Mar 2004 11:26:13 BRT Build Date : Sex 26 Dez 2003 01:52:22 BRT Build Host : mapi8.distro.conectiva Source RPM : bash-2.05b-42313cl.src.rpm Signature : (none) Packager : Conectiva S.A. <security at conectiva.com.br> URL : http://www.gnu.org/software/bash Summary : GNU Bourne Again Shell (bash) Description : Bash é um interpretador de comandos compatível com sh, que executa comandos lidos da entrada padrão ou de um arquivo. Bash também incorpora características úteis das shells Korn e C (ksh e csh). O Bash tem sido desenvolvido para ser uma implementação compatível com a especificação IEEE Posix para shells e ferramentas (IEEE Working Group 1003.2). |
Para obter informações de um pacote que não está instalado, utilize a opção -p, seguida do nome do arquivo do pacote.
O administrador poderá utilizar o rpm para obter informações sobre as dependências de um pacote. Poderá descobrir que outros pacotes dependem do pacote que se quer consultar, bem como descobrir de que pacotes o pacote consultado necessita. Os dois exemplos abaixo mostram como descobrir essas duas informações, respectivamente:
# rpm -q --whatrequires glib gtk+-1.2.10-45456cl xmms-1.2.10-52293cl bonobo-1.0.22-46388cl # $ rpm -q --requires glib /sbin/ldconfig /sbin/ldconfig libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1.2) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.3) libdl.so.2 libdl.so.2(GLIBC_2.0) libdl.so.2(GLIBC_2.1) libpthread.so.0 libpthread.so.0(GLIBC_2.0) libpthread.so.0(GLIBC_2.3.2) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(ScriptletInterpreterArgs) <= 4.0.3-1 |
Para descobrir a qual pacote pertence um arquivo do sistema utilize a opção -qf arquivo, como no exemplo abaixo:
# rpm -qf /bin/bash bash-2.05b-42313cl |
E como um último exemplo, veja como listar todos os pacotes instalados no sistema:
# rpm -qa |
Roney Médice
Analista de Sistemas e Bacharel em Direito