Revista Do Linux  
EDIÇÃO DO MÊS
 Programação
 CD do mês
 Corporativo
 Entrevista
 Capa
 Estudo de Caso
 Produto
 Distro
 Flagship
 Interbase
 Gerenciadores
 RPM
 Wine
 XML
 

Instale pacotes RPM

Uma das dificuldades encontradas pelos novatos no mundo Linux é a instalação de programas. Acostumados com os instaladores "automáticos" do Windows, eles podem achar estranho, de início, o conceito de pacotes e dependências, além de às vezes precisarem recorrer à linha de comando para instalar um programa. No começo, a forma mais comum para efetuar a instalação de um programa era baixar o código-fonte, compilá-lo em sua própria máquina e instalar o programa com um make install. Com a popularização do Linux, e pensando em facilitar a vida do usuário final, várias empresas desenvolveram suas próprias soluções para instalação. Uma delas é o sistema de pacotes RPM, desenvolvido pela Red Hat e adotado por várias outras distribuições.

O sistema RPM consiste de um utilitário, chamado de (adivinhem?) rpm, uma base de dados com a lista de todos os pacotes instalados, suas respectivas dependências e a localização dos arquivos pertencentes a cada pacote, e os pacotes em si, que é a maneira pela qual são distribuídos os programas. O utilitário RPM fornece várias opções para a instalação e a manutenção dos pacotes, entre elas remoção, atualização, instalação e verificação. A seguir mostraremos os passos básicos necessários para que um usuário utilize melhor esse sistema.

Onde encontrar?

Muitas vezes você encontra um programa que faz exatamente o que você precisa, mas ele não está disponível em formato RPM, e você não quer baixar e compilar o source (código-fonte). O que fazer, então? Em primeiro lugar, calma. Não desista! Basta fazer uma busca no site RPM Find (www.rpmfind.net). Lá existem, literalmente, milhares de RPMs, separados por nome, categoria ou distribuição a que pertencem. Mas se ainda assim você não encontrar o que procura, dê uma olhada no site de FTP da sua distribuição favorita. Talvez lá exista algo que ainda não está disponível em outros lugares. Ou leia o livro Maximum RPM, que explica detalhadamente como funciona o sistema RPM e como criar seus próprios pacotes a partir do código-fonte dos programas (mais uma oportunidade para colaborar com o movimento Open Source). O CD que acompanha a edição 11 da Revista do Linux inclui uma cópia do livro no formato PostScript (está na seção "Docs" do CD) ou então você pode conseguir uma cópia no site oficial do RPM (www.rpm.org).

Busca...

Às vezes, precisamos saber se temos ou não determinado pacote no sistema. O RPM lhe dá uma série de opções de consulta através do parâmetro -q (query, consulta em inglês). Veja o exemplo:


$ rpm -qa | grep KDE

Esse comando faz uma busca no sistema e lhe diz quais pacotes do KDE estão instalados.

Instalar um pacote

Para instalar um programa, usamos o parâmetro "-i" do rpm, que significa install.

Por exemplo, podemos digitar:


rpm -i pacote.xyz-01.i386.rpm

E o pacote.xyz-01.i386.rpm será instalado. Podemos incrementar um pouco a instalação usando o parâmetro "-h", que mostra uma série de caracteres # , indicando o progresso da instalação. Repetindo o exemplo acima, teríamos:


rpm -ih pacote.xyz-01.i386.rpm

Mantendo-se atualizado

Vamos supor que você já tenha o programa instalado, mas acabou de baixar uma versão mais nova e quer atualizá-lo. É possível fazer isso usando o parâmetro "-U". Veja abaixo:


rpm -Uh pacote.xyz-02.i386.rpm

Ou seja, com isso o rpm atualiza (-U) e mostra a porcentagem (h) de progresso na atualização do pacote pacote.xyz-02.i386.rpm.

Botando o lixo para fora

Se aquele programinha que você copiou não faz o que você deseja, é possível removê-lo facilmente do sistema com a opção "-e". Você não precisa digitar o nome completo do pacote. Pelos exemplos acima:


# rpm --erase pacote.xyz

E o pacote será removido.

Dependências

Alguns pacotes dependem de outros para funcionar. É o caso do KDE, que precisa da biblioteca Qt. Isso é chamado de "dependência de pacotes". Pode ocorrer de, ao instalar um programa, o rpm exibir uma mensagem de erro avisando sobre alguma dependência não satisfeita, como no exemplo abaixo:

$ rpm -ih WindowMaker-0.61-1.2.ppc.rpm
error: failed dependencies:
libPropList is needed by WindowMaker-0.61.1-2
libPropList.so.0 is needed by WindowMaker-0.61.1-2

Ou seja, o WindowMaker não pode ser instalado, pois a libPropList não está instalada. Solução? Instale a libPropList primeiro. Você pode perguntar: "E como vou saber em qual pacote está a libPropList?". Não há um jeito fácil de fazer isto. Você pode até gerar um script que faça esse trabalho, mas isso requer conhecimento de opções mais avançadas do RPM. Problemas com dependências também podem ocorrer durante a atualização ou na remoção de um pacote. Confira:


$ rpm -e qt1x (vamos tentar remover a biblioteca Qt)
error: removing these packages would break dependencies:
libqt.so.1 is needed by kdesupport-1.1.2-12
libqt.so.1 is needed by kdelibs-1.1.2-14
libqt.so.1 is needed by kdenetwork-1.1.2-12

Não podemos remover a biblioteca Qt porque existem pacotes (como o KDE) que precisam dela. Se eu realmente quisesse excluir essa biblioteca, teria primeiro que tirar o KDE para depois mexer nela. É claro que eu poderia usar a opção —— force justamente para forçar uma instalação, remoção ou atualização, mas no exemplo acima eu ficaria com um KDE inútil, pois, como já disse, ele precisa da Qt.

O apt-get

Uma solução para o problema das dependências está sendo desenvolvida pela Conectiva. Trata-se de uma versão "rpm" do apt-get (o famoso gerenciador de pacotes do Debian). A instalação dos pacotes é feita pela Internet, e o apt-get detecta automaticamente as dependências necessárias e as instala juntamente com o pacote. Ele também pode detectar e remover pacotes que possam causar conflitos. É possível até mesmo fazer um upgrade completo do sistema.

Gerenciadores gráficos

Claro que você não precisa usar o console para instalar seus pacotes. Existem ferramentas gráficas, como o

GnoRPM ou o KPackage, que podem facilitar a tarefa. É sempre bom, contudo, aprender os comandos da ferramenta rpm padrão, já que nem sempre você poderá contar com uma ferramenta gráfica instalada.

Nas próximas edições vamos estender o tema falando sobre outras formas de "pacotes" como o .DEB, do Debian, e o famoso e também popular TGZ da Slackware. Um artigo sobre compilação de programas (os famigerados .tar.gz) saiu na edição nº 9 da Revista do Linux.

Para saber mais

www.rpm.org - Na página oficial do RPM você encontra cópias em formato PostScript e LaTeX do livro Maximum RPM, que será muito útil caso você queira se aventurar a criar seus próprios pacotes ou aprender mais sobre o sistema.
www.daa.com.au/~james/gnome/ - Página oficial do GnoRPM, um gerenciador de pacotes para o Gnome.
www.general.uwa.edu.au/u/toivo/kpackage/ — Página do KPackage, um gerenciador de pacotes para o KDE. Possui uma versão on-line do manual do programa.


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux