Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Thinking in Patterns, com Bruce Eckel

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

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 é 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.

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 passaremos a realizar uma análise de 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-se 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

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 < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>#

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, podemosobter 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 determinadoarquivo. 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. 2.5 Verificação

A verificação de um pacote consiste em comparar a informação entreos 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 < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##

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 < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>

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 se 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 o mesmo 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:

  basesystem-4.0-6cl
  ldconfig-1.9.9-5cl
  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, o arquivo resultante:

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

Caso não haja algum programa 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.

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

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.04/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (549 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

Josemar Loura Silvino
24 Jul 2008, 11:52
Estou querendo adquirir um computador com sistema operacional Linux.
Gostaria de saber se o sistema e viavel ou nao, ja obtive informacoes que sim, so que existe um problema em relacoes as atualizacoes.
Quero saber se procede informacoes sobre adquirir um com atualizacoes que venham com pet 2.
Aguardo respostas, obrigado.
Josué Romera Pacini
26 Mai 2008, 15:36
Informou o que precisei saber.
Muito bom
Ariel
29 Out 2007, 12:42
Como dar permissões de acesso a usuarios para arquivos .rpm?

Desde ja grato
Eduardo de Souza
21 Jul 2007, 23:50
Parabéns, continuem assim.
North Dakota
06 Jul 2007, 13:45
Gerenciamento de Software com RPM também funciona no Fedora Core 7 ?
Fernando
29 Jun 2007, 14:53
Pessoal parabéns pelo ótimo trabalho,eu sou iniciante no linux,sempre gostei muito do linux desde que comecei a usar,mais uma das minhas maiores preocupações sempre foi em relação a instalção e remoção de programas,comecei a usar o kurumin com pacotes derivados do debian hoje recem instalado estou utilizando o conectiva one mais devido a migração estou perdido já que os comandos são diferentes até que estou gostando bastante,só tem um,a coisa que esta me intrigando bastante dando uma vasculhada no sistema cliquei em meu computador e por curiosidade cliquei em redes pra minha surpresa tive acesso a um computador de um hospital em teresopolis tendo acesso a arquivos e tudo mais.Alguem pode me dizer como isso pode acontecer?Se eu fosse uma pessoa ruim poderia até deletar arquivos do sistema causando uma pane no pc do hospital,falando nisso vou deixar um aviso pra eles corrigirem esse problema.
DEsde ja fico grato re parabéns.
Cleiton
06 Dez 2006, 13:03
rpm
Humberto Freitas
30 Out 2006, 12:25
Parabéns pelo belo trabalho de vcs.
Estava pergrinando pela net para encontrar as respostas sobre a utilização do pacote rpm. Problema solucionado graças a vcs.
Muito obrigado.
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treina Linux -  Cursos de Linux e Video aulas

Cursos

Thinking in Patterns, com o "guru" Bruce Eckel
Aprenda Padrões de Projetos da única maneira possível: Programando!
Dias 15, 16 e 17 de Setembro - São Paulo
Saiba mais

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Google Hacking
Por JOHNNY LONG

1808
Por Laurentino Gomes

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Linux: Guia do Administrador do Sistema
Por Rubem E. Ferreira

A Menina que Roubava Livros
Por Markus Zusak

Sistemas Operacionais Modernos
Por Andrew S. Tanembaum

Hardware: Curso Completo
Por Gabriel Torres

PHP para Quem Conhece PHP
Por Juliano Niederauer

Redes de Computadores: Curso Completo
Por Gabriel Torres

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

O Caçador de Pipas
Por Khaled Hosseini

O Médico Doente
Por Dráuzio Varella

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson

MySQL - Guia do Programador
Por André Milani

Certificação Linux
Por Uira Ribeiro

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

OpenGL: uma Abordagem Prática e Objetiva
Por Marcelo Cohen, Isabel Harb Manssour

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Extreme Programming
Por Vinicius Manhaes Teles