Categorias

quarta-feira, 3 de outubro de 2012

RPM

RPM:

INSTALANDO UM PACOTE: 

rpm -Uvh foo-1.0-1.i386.rpm

INSTALAR PACOTE DE QUALQUER MANEIRA (MESMO QUE INSTALADO):


Obs:  você pode usar a opção --replacepkgs, que pede ao RPM para ignorar o erro:

rpm -ivh --replacepkgs foo-1.0-1.i386.rpm



DEPENCÊNCIA NÃO RESOLVIDA:
Os pacotes ROM podem "depender" de outros pacotes, o que significa que eles requerem a instalação de outros pacotes para rodarem apropriadamente.

Ex:error: Failed dependencies: bar.so.2 is needed by foo-1.0-1
rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm

Se não sugere um pacote para resolver a dependência, você pode tentar a opção --redhatprovides para determinar qual pacote contém o arquivo necessário. Você precisa ter o pacote rpmdb-redhat instalado para usar estas opções.

rpm -q --redhatprovides bar.so.2


DESINSTALANDO
rpm -e foo
Você pode encontrar um erro de dependência ao desinstalar um pacote, caso um outro pacote instalado dependa daquele que tenta remover.
Para fazer com que o RPM ignore este erro e desinstale o pacote de qualquer maneira (o que também é uma má idéia já que o pacote que depende deste provavelmente não funcionará corretamente), use a opção --nodeps

ATUALIZANDO UM PACOTE
rpm -Uvh foo-2.0-1.i386.rpm
Obs: RPM automaticamente desinstala todas as versões antigas do pacote foo.
Para fazer com que o RPM "atualize" de qualquer maneira, use a opção --oldpackage 
Ex: rpm -Uvh --oldpackage foo-1.0-1.i386.rpm

RECARREGANDO UM PACOTE
E similar a atualizar um:
rpm -Fvh foo-1.2-1.i386.rpm

A opção de recarregamento (freshen) do RPM verifica as versões dos pacotes especificados na linha de comando com as versões dos pacotes que já foram instalados no seu sistema. Quando uma versão mais recente de um pacote já instalado é processada pela opção de recarregamento do RPM, é atualizada para a versão mais nova. Entretanto, a opção de recarregamento do RPM não instala um pacote se não houver um outro previamente instalado com o mesmo nome. Isto difere da opção de atualização do RPM, já que a atualização instala os pacotes, independente do fato de haver uma versão mais antiga do pacote ou não.
A opção de recarregamento do RPM para pacotes simples ou um grupo de pacotes. Se você fez o download de um grande número de pacotes diferentes e só deseja atualizar os pacotes que já estão instalados no sistema, o recarregamento é a melhor opção. Se usar o recarregamento, não é necessário apagar pacotes não quistos do grupo baixado (download) antes de usar o RPM.
Neste caso, invoque o seguinte comando: rpm -Fvh *.rpm

BUSCA

Ao invés de especificar o nome do pacote, você pode usar as seguintes opções com -q para especificar o(s) pacote(s) que deseja buscar. Estas são chamadas Opções de Especificação de Pacotes.
  • -a busca em todos os pacotes atualmente instalados.
  • -f busca pelo pacote que detém o . Ao especificar um arquivo, é necessário indicar a localidade completa do mesmo (ex.: /usr/bin/ls).
  • -p busca pelo pacote .
Há diversas maneiras de especificar quais informações devem ser apresentadas sobre os pacotes encontrados. As opções a seguir são usadas para selecionar o tipo de informação pela qual você procura. Estas são chamadas de Opções de Seleção das Informações.
  • -i apresenta as informações do pacote incluindo nome, descrição, versão, tamanho, data de criação, data de instalação, fabricante e outras informações diversas.
  • -l apresenta a lista dos arquivos contidos no pacote.
  • -s apresenta o estado de todos os arquivos do pacote.
  • -d apresenta uma lista dos arquivos marcados como documentação (páginas man, páginas info, READMEs, etc.).
  • -c apresenta uma lista dos arquivos marcados como arquivos de configuração. Estes são os arquivos que você altera após a instalação para adaptar o pacote ao seu sistema (ex.: sendmail.cf, passwd, inittab, etc.).
Para as opções que apresentam listas de arquivos, você pode adicionar -v ao comando para apresentar as listas num formato ls -l familiar. 


VERIFICANDO:
Verificar um pacote compara as informações sobre os arquivos instalados de um pacote às mesmas informações do pacote original. Dentre outras coisas, a verificação compara o tamanho, soma MD5, permissões, tipo, proprietário (owner) e o grupo de cada arquivo.
O comando rpm -V verifica um pacote. Você pode usar qualquer uma das Opções de Seleção de Pacotes listadas para a procura, para especificar os pacotes que deseja verificar. Um uso simples da verificação é rpm -V foo, que verifica se todos os arquivos do pacote foo estão como estavam quando foram originalmente instalados. Por exemplo:
  • Para verificar um pacote contendo um determinado arquivo:
    rpm -Vf /bin/vi
  • Para verificar TODOS os pacotes instalados:
    rpm -Va
  • Para verificar um pacote instalado sobre um arquivo do pacote RPM:
    rpm -Vp foo-1.0-1.i386.rpm
    Este comando pode ser útil se você suspeitar que seus bancos de dados RPM estejam corrompidos.
Se tudo for verificado apropriadamente, não haverá output. Se houver discrepâncias, estas serão apresentadas. O formato do output é um conjunto de oito caracteres (um c denota um arquivo de configuração) e então o nome do arquivo. Cada um dos oito caracteres denota o resultado de uma comparação de um atributo do arquivo ao valor deste mesmo atributo registrado no banco de dados RPM. Um único . (ponto) significa que o teste foi aprovado. Os seguintes caracteres denotam a falha de determinados testes:
  • 5 — verificação de consistência MD5
  • S — tamanho do arquivo (size)
  • L — ligação simbólica
  • T — hora da modificação do arquivo (time)
  • D — dispositivo
  • U — usuário
  • G — grupo
  • M — modo (inclui permissões e tipo do arquivo)
  • ? — arquivo ilegível
Se você ver algum output, use seu bom senso para determinar se deve remover ou reinstalar o pacote, ou então consertar o problema de outra maneira.