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.
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.
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.
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
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!
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.
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.
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.
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.
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 ########################
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.
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.
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.
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários