De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Gnu Linux Red Hat - Gerenciamento de Software com RPM

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 22 de Janeiro de 2006

O gerenciamento de software em sistemas Red Hat Linux e outros, como SuSe Linux, é feito por meio de uma ferramenta denominada RPM, iniciais de Red Hat Package Manager. Esta ferramenta permite a instalação, atualização e remoção de pacotes de software, simplificando enormemente esta tarefa comparativamente ao método tradicional, que exigia que todos os pacotes fossem compilados e instalados, em um processo difícil e propenso a falhas, com um grande consumo de tempo.

Com o RPM a instalação de software se torna extremamente simples, requerendo, na maioria dos casos, apenas a execução de um comando de uma linha. Além da facilidade de uso em si, o banco de dados RPM permite a fácil duplicação de sistemas com exatamente a mesma configuração de software.

A instalação e gerenciamento de software pode também ser feita a partir de interfaces gráficas, mas o conhecimento dos comandos agiliza em muito diversos procedimentos.

1. Utilização RPM

O RPM possui cinco modos básicos de operação: instalação, desinstalação, atualização, consulta e verificação. A seguir analisaremos cada um destes modos de operação.

1.1. Instalação

Softwares distribuídos no formato rpm geralmente possuem a terminação .rpm, como por exemplo gnosamba-0.3.3-1.i386.rpm. Esta representação contém o nome do software (gnosamba), a versão (0.3.3), número do release (1) e a arquitetura (i386). A instalação de um software requer nada mais do que a execução, como superusuário root do comando:

# rpm -i gnosamba-0.3.3-1.i386.rpm

1.2. Desinstalação

A remoção de um pacote é tão simples quanto sua instalação:

# rpm -e netsaint-plugins

Na remoção de um software basta especificar o seu nome. Não é necessário indicar o nome completo (netsaint-plugins-1.2.4-1.i386.rpm).

Na desinstalação, caso a remoção de um pacote implique em problemas para o funcionamento de outros softwares pela eliminação de componentes compartilhados, teremos o seguinte erro:

# rpm -e kdelibs-1.1.2-9
error: removing these packages would break dependencies:
libjscript.so.2 is needed by kdebase-1.1.2-11
...

Caso realmente se deseje a remoção do software, ignorando todos e quaisquer problemas passíveis de serem gerados, especificar a opção --nodeps na linha de comando:

# rpm -e --nodeps kdelibs-1.1.2-9

Muito cuidado com esta opção!

1.3. Atualização

A atualização de um software também é bastante simples:

# rpm -Uvh gnome-audio-1.0.0-7.noarch.rpm
gnome-audio #########################

O que na verdade ocorre quando se faz a atualização de um pacote é que a versão anterior é removida e substituída pela nova. A opção -U pode ser usada com segurança mesmo quando o software não se encontra instalado em seu sistema.

1.4. Consultas

O banco de dados RPM nos permite consultar a lista de softwares instalados. Isto é feito através do comando rpm -q. Por exemplo, se quisermos verificar se o software gnosamba está instalado, basta emitir o comando:

$ rpm -q gnosamba
gnosamba-0.3.3-1

As consultas podem também ser feitas de um modo mais genérico. Caso não seja conhecido o nome correto do software, pode-se proceder como abaixo:

$ rpm -qa | grep samba
samba-2.0.5a-1
gnosamba-0.3.3-1
samba-client-2.0.5a-1

Desta forma, conhecendo-se apenas uma parte do nome de um pacote, podemos obter a informação desejada conjugando o uso do programa rpm com o comando grep.

O rpm nos permite determinar também a qual pacote pertence determinado arquivo. Por exemplo, se desejarmos determinar a qual pacote pertence o arquivo smbd, basta emitir o comando:

$ rpm -qf /usr/sbin/nmbd
samba-2.0.5a-1

Importante, é necessário que se especifique o caminho completo até o arquivo. Caso emitamos o comando:

$ rpm -qf nmbd
file nmbd: Arquivo ou diretório não encontrado

será emitida uma mensagem de erro mesmo existindo o arquivo.

1.5. Verificação

A verificação de um pacote consiste em comparar a informação entre os arquivos que o compõem e aqueles que efetivamente se encontram no sistema. Esta comparação consiste em verificar, entre outras coisas, o tamanho, soma MD5, permissões, tipo de arquivo, a quem o arquivo deve pertencer (dono e grupo).

O comando rpm -V verifica um pacote. Qualquer forma de verificação já abordada nos itens anteriores é válida. Por exemplo:

$ rpm -V gnosamba

Se tudo estiver correto nada é impresso na tela. Caso algum arquivo estiver faltando, será impressa uma mensagem de erro informando a inconsistência encontrada:

# rpm -V gnosamba
missing /usr/doc/gnosamba-0.3.3/TODO

Neste caso o arquivo TODO, integrante do pacote gnosamba, está faltando.

Se o seu sistema começar a se comportar misteriosamente, talvez valha a pena fazer uma verificação global:

rpm -Va > verificacao-dependencias

Como a saída deste comando em um sistema com problemas pode gerar muitas linhas, é conveniente redirecionar o resultado para um arquivo para verificação posterior.

2. Problemas

2.1. Softwares Previamente Instalados

Se o software já se encontra instalado em seu sistema, temos a seguinte situação:

# rpm -ivh gnosamba-0.3.3-1.i386.rpm
package gnosamba-0.3.3-1 is already installed

No exemplo acima, foi detectado que o software já se encontra instalado e o processamento é interrompido. É possível entretanto que se force a instalação, especificando ao RPM que ignore eventuais erros:

# rpm -ivh --replacepkgs gnosamba-0.3.3-1.i386.rpm
gnosamba ##########################

O comando emitido gerou uma saída contendo o nome do software seguida de marcas indicativas do progresso da instalação.

2.2. Arquivos Conflitantes

Caso se tente instalar um pacote que contenha arquivos que já tenham sido instalados previamente por outros softwares, será gerada a seguinte mensagem de erro:

# rpm -ivh WebMaker-0.8.5-4.i386.rpm
file /usr/share/icons/mini/html.xpm from install of WebMaker-0.8.5-4
conflicts with file from package kdebase-1.1.2-11

Para fazer com que tal erro seja ignorado, utilizar a diretiva --replacefiles:

# rpm -ivh --replacefiles WebMaker-0.8.5-4.i386.rpm
WebMaker ########################

2.3. Dependências Não Resolvidas

Muitos softwares dependem, para seu correto funcionamento, de funções oferecidas por outros softwares. Desta forma, a instalação só é bem sucedida se todos os elementos necessários estiverem presentes no sistema.

# rpm -i netsaint-0.0.4-1.i386.rpm
error: failed dependencies:
netsaint-plugins is needed by netsaint-0.0.4-1

Para resolver estes problemas é necessário que os pré-requisitos apropriados sejam instalados. É também possível forçar a instalação, o que certamente não é aconselhável. Na quase totalidade dos casos, ignorar as dependências irá resultar em um software instalado que não funcionará. Para forçar uma instalação, sem respeitar os pré-requisitos, utilizar a opção --nodeps na linha de comando.

3. Adequação de Softwares em Sistemas Linux

O processo de instalação de Linux RedHat pode ser realizado de forma quase que automatizada através da seleção de uma classe de equipamento (servidor, estação de trabalho ou personalizada). O resultado final é que frequentemente muito mais softwares são instalados do que realmente necessitamos, ocupando espaço em disco desnecessariamente. A facilidade de instalação tem como efeito colateral um sistema mais inchado do que a necessidade real.

O RPM pode nos auxiliar na adequação da configuração de software do sistema às reais necessidades. Descrevemos a seguir um procedimento simples que nos permite realizar esta tarefa de forma rápida e simples.

4. Criação de uma listagem de todos os softwares instalados

rpm -q -a > listagem-software

Após criada a listagem, examinar com cuidado tudo que está instalado e remover o que não for necessário. Uma recomendação, caso algum pacote seja desconhecido é melhor adiar sua desinstalação até que se possam obter mais informações sobre ele e determinar o real impacto de sua remoção de seu sistema. Para realizar a remoção,edite o arquivo criado no passo anterior e preceda o nome de cada pacote a ser removida com rpm -e. Na listagem abaixo eu quero remover os pacotes AfterStep e anonftp:

ldconfig-1.9.9-5cl
basesystem-4.0-6cl
mktemp-1.5-2cl
rpm -e AfterStep-APPS-990329-3cl
rpm -e anonftp-2.8-2cl

Após analisado todo o arquivo basta selecionar, com o comando grep, as linhas que contenham a string rpm -e, e em seguida, com o programa sh, executar o arquivo resultante:

# grep "rpm -e" listagem-software > remove-list
# sh remove-list

Caso não haja algum problema de quebra de dependências, os softwares serão removidos. Caso haja algum problema, consultar cuidadosamente a documentação dos produtos listados e proceder como for adequado.

5. Bibliografia e Referências Adicionais

Este documento foi baseado em grande parte no livro Red Hat Linux 5.2: The Official Red Hat Linux Installation Guide. Este manual ou versão mais recente está disponível em formato eletrônico no site da empresa Red Hat. Adicionalmente foi consultado também o livro Linux Newbie Administrator Guide, por Stan, Peter, Marie e Barbara Klimas.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida