\section{rpm}
\index{rpm}
\subsubsection{NOME }
rpm - Gerenciador de Pacotes Red Hat  \subsubsection{SINOPSE }
\textbf{rpm } [opções]   \subsubsection{AVISO 
}
Por favor não use rpm diretamente em outra distribuição que não utilize 
a  tecnologia RPM, a não ser que você saiba exatamente o que está fazendo. 
 Isto pode quebrar o banco de dados de sua distribuição. Se você usa a 
DEBIAN, instale o pacote  \textbf{alien } e use-o para converter pacotes do Red 
Hat.  \subsubsection{DESCRIÇÃO }
\textbf{rpm} é um poderoso  \textit{gerenciador de pacotes}, que pode ser utilizado 
para construir, instalar, consultar, verificar, atualizar e desinstalar 
pacotes de software. Um \textit{pacote} consiste em um  \textbf{arquivo} de arquivos e informações 
sobre o pacote, incluindo nome, versão e descrição. 

 Há dez modos básicos 
de operação, e cada um aceita um conjunto diferente de opções. Elas são 
\textit{Instalação}, \textit{Consulta}, \textit{Verificação}, \textit{Validação de Assinatura}, \textit{Desinstalação}, 
\textit{Construção}, \textit{Reconstrução do Banco de Dados}, \textit{Ajustar Permissões}, \textit{Ajustar Donos e Grupos} 
e \textit{Exibir Configuração}. 

 Modo de Instalação:  

\textit{\textbf{    rpm -i [opções-de-instalação] 
$<$arquivo\_pacote$>$+ }}  

Modo de Consulta:  

\textit{\textbf{    rpm -q [opções-de-consulta] }}  

Modo 
de Verificação:  

\textit{\textbf{    rpm -V$|$-y$|$--verify [opções-de-verificação] }}  

Modo de Validação 
de Assinatura:  

\textit{\textbf{    rpm --checksig $<$arquivo\_pacote$>$+ }}  

Modo de Desinstalação: 
 

\textit{\textbf{    rpm -e $<$nome\_do\_pacote$>$+ }}  

Modo de Construção:  

\textit{\textbf{    rpm -[b$|$t]\textit{O\textbf{ [opções-de-construção] 
$<$spec\_do\_pacote$>$+ }}}}  

Reconstruir Bando de Dados:  

\textit{\textbf{    rpm --rebuilddb}  }

Ajustar 
Permissões:  

\textit{\textbf{    rpm --setperms [especificadores-de-consulta-de-pacote] }}  

Ajustar 
Donos e Grupos:  

\textit{\textbf{    rpm --setugids [especificadores-de-consulta-de-pacote] 
}}  

Exibir Configuração:  

\textit{\textbf{    rpm --showrc}  }

Um \textbf{+ } após um parâmetro indica 
que ele pode aparecer mais de uma vez (múltiplos pacotes). 

  \subsubsection{OPÇÕES GERAIS 
}
Estas opções podem ser usadas em todos os modos de operação. \begin{dispitems}
\item [\textbf{-vv } ] Exibe 
um monte de informações bizarras de depuração. 
\item [\textbf{--keep-temps } ] Não remove arquivos 
temporários (/tmp/rpm-*). Serve principalmente para depurar o rpm. 
\item [\textbf{--quiet 
} ] Exibe o mínimo possível - normalmente apenas mensagens de erro serão mostradas. 

\item [\textbf{--help } ] Exibe uma mensagem de utilização mais longa que o normal. 
\item [\textbf{--version 
} ] Exibe uma única linha contendo o número da versão do rpm sendo usado. 

\item [\textbf{--rcfile $<$arquivo$>$ } ] Usa \textbf{$<$arquivo$>$ } ao invés de \textbf{/etc/rpmrc } e \textbf{\$HOME.rpmrc } como 
arquivo de configurações. 
\item [\textbf{--root \textit{$<$dir$>$ }} ] Usa o sistema com raiz em \textit{$<$dir$>$ } para 
todas as operações. Note que o banco de dados será lido ou modificado sob 
\textit{$<$dir$>$ } e que os scripts de pré e pós instalação ou desinstalação serão executados 
após um chroot()  para \textit{$<$dir$>$ }. 
\item [\textbf{--dbpath $<$caminho$>$ } ] Usa o banco de dados do RPM 
em $<$caminho$>$. 
\item [\textbf{--ftpproxy $<$máquina$>$ } ] Usa $<$máquina$>$ como um proxy de FTP. Veja \textbf{OPÇÕES 
DE FTP }. 
\item [\textbf{--ftpport $<$porta$>$ } ] Usa $<$porta$>$ como a porta de FTP. Veja \textbf{OPÇÕES DE FTP 
}. 
\end{dispitems}


  \subsubsection{OPÇÕES DE INSTALAÇÃO E ATUALIZAÇÃO }
A forma geral de um comando de instalação 
é 

	\textbf{rpm -i [opções-de-instalação] $<$arquivo\_pacote$>$+ } 

Isto instala um novo pacote. 
A forma geral de um comando de atualização é 

	\textbf{rpm -U [opções-de-instalação] 
$<$arquivo\_pacote$>$+ } 

Isto instala ou atualiza o pacote atualmente instalado 
para a versão do novo RPM. Isso é o mesmo que instalar, exceto que todas 
as versões anteriores dos pacotes serão removidas do sistema após a atualização. 


 O $<$arquivo\_pacote$>$ pode ser especificado no estilo de uma URL de ftp, no 
caso em que o pacote será transferido antes de instalado. Veja \textbf{OPÇÕES DE 
FTP } para mais informações ao suporte a ftp embutido no rpm. 

\begin{dispitems}
\item [\textbf{--force } ] O mesmo 
que usar --replacepkgs, --replacefiles e --oldpackage. 
\item [\textbf{-h, --hash } ] Exibe 50 caracteres 
\# (hash) à medida que o \textbf{arquivo } é desempacotado. Use em conjunto com \textbf{-v 
} para uma exibição interessante. 
\item [\textbf{--oldpackage } ] Permite que uma atualização 
substitua um pacote por uma versão anterior. 
\item [\textbf{--percent } ] Exibe porcentagens 
à medida que os  \textbf{arquivos } são desempacotados. Isto é para tornar o rpm 
facilmente executável  a partir de outras ferramentas. 
\item [\textbf{--replacefiles } ] Instala 
os pacotes mesmo que eles substituam arquivos de outros pacotes, já instalados. 

\item [\textbf{--replacepkgs } ] Instala os pacotes mesmo que alguns deles já estejam instalados 
no sistema. 
\item [\textbf{--allfiles } ] Instala ou atualiza todos os arquivos do pacote que 
estão faltando, independente deles existirem ou não. 
\item [\textbf{--nodeps } ] Não verifica 
as dependências antes de instalar ou atualizar um pacote. 
\item [\textbf{--noscripts } ] Não 
executa os scripts de pré ou pós instalação. 
\item [\textbf{--excludedocs } ] Não instala nenhum 
arquivo marcado como documentação (o que inclui as páginas de manual e 
documentos texinfo). 
\item [\textbf{--includedocs } ] Instala os arquivos de documentação. Isto 
só é necessário se \textit{excludedocs: 1 } está especificado em um arquivo de 
configuração do rpm. 
\item [\textbf{--test } ] Não instala o pacote, apenas verifica e avisa 
sobre possíveis conflitos. 
\item [\textbf{--prefix $<$caminho$>$ } ] Isto determina o prefixo de 
instalação como $<$caminho$>$ para pacotes relocalizáveis (pacotes que não precisam 
ser instalados apenas em um certo caminho). 
\item [\textbf{--ignorearch } ] Isto permite a 
instalação ou atualização de pacotes mesmo que as arquiteturas do RPM 
binário e da máquina não coincidam. 
\item [\textbf{--ignoreos } ] Isto permite a instalação 
ou atualização mesmo que os sistemas operacionais do RPM binário e da 
máquina não coincidam. 
\end{dispitems}


 

  \subsubsection{OPÇÕES DE CONSULTA }
A forma geral de um comando 
de consulta é 

	\textbf{rpm -q [opções-de-consulta] } 

Você pode especificar o formato 
em que as informações sobre os pacotes serão exibidas. Para tal, use a 
opção \textbf{--queryformat }, seguida de uma frase especificando o formato. 

 Formatos 
de consulta são versões modificadas da formatação padrão da função \textbf{printf() 
}. O formato é feito de frases estáticas (que podem incluir as seqüências 
de escape do C como nova linha, tabulação e outros caracteres especiais) 
e formatadores de tipo do \textbf{printf() }. Já que o \textbf{rpm } já sabe qual tipo exibir, 
o especificador de tipo pode ser omitido, e substituído pelo nome do cabeçalho 
a ser exibido, cercado por \textbf{\{\} }. A parte \textbf{RPMTAG\_ } do cabeçalho pode ser 
omitida. 

 Saídas alternativas podem ser requisitadas acrescentando \textbf{:\textit{tipo 
}} ao nome do cabeçalho. Atualmente, os seguintes tipos são suportados: \textbf{octal 
}, \textbf{date }, \textbf{shescape }, \textbf{perms }, \textbf{fflags }, e \textbf{depflags }. 

 Por exemplo, para exibir 
somente o nome dos pacotes consultados, você pode usar \textbf{\%\{NAME\} } como frase 
de formato. Para exibir os pacotes e a distribuição, formatados em duas 
colunas, você pode usar \textbf{\%-30\{NAME\}\{DISTRIBUTION\} }. 

 O \textbf{rpm } exibirá uma lista 
de formatos sobre os quais ele sabe quando for chamado com o parâmetro 
\textbf{--querytags }. 

 Há dois subconjuntos de opções de consulta: seleção de pacotes 
e seleção de informações. 

 Opções de seleção de pacotes:  

\begin{dispitems}
\item [\textbf{\textit{$<$nome\_do\_pacote$>$ 
}} ] Consulta o pacote instalado de nome \textbf{\textit{$<$nome\_do\_pacote$>$ }}. 
\item [\textbf{-a } ] Consulta todos 
os pacotes instalados. 
\item [\textbf{--whatrequires \textit{$<$capacidade$>$ }} ] Consulta todos os pacotes 
que requerem \textit{$<$capacidade$>$ } para funcionar corretamente. 
\item [\textbf{--whatprovides \textit{$<$virtual$>$ 
}} ] Consulta todos os pacotes que fornecem a capacidade \textit{$<$virtual$>$ }. 
\item [\textbf{-f \textit{$<$arquivo$>$ 
}} ] Consulta o pacote do qual \textit{$<$arquivo$>$ } faz parte. 
\item [\textbf{-p \textit{$<$arquivo\_pacote$>$ }} ] Consulta 
um arquivo de pacote (desinstalado) de nome \textit{$<$arquivo\_pacote$>$ }. O $<$arquivo\_pacote$>$ 
pode ser especificado como uma URL no estilo ftp, caso no qual o cabeçalho 
do pacote será transferido e consultado. Veja \textbf{OPÇÕES DE FTP } para mais 
informações sobre o suporte a ftp embutido no rpm. 
\end{dispitems}


 

Opções de seleção de 
informações:  

\begin{dispitems}
\item [\textbf{-i } ] Exibe informações sobre o pacote, incluindo nome, versão 
e descrição. Utiliza a opção \textbf{--queryformat } se ela foi especificada. 
\item [\textbf{-R } ] Lista 
os pacotes dos quais este depende (o mesmo que \textbf{--requires }). 
\item [\textbf{--provides } ] Lista 
as capacidades que este pacote fornece. 
\item [\textbf{--changelog } ] Exibe informações sobre 
as mudanças neste pacote. 
\item [\textbf{-l } ] Lista os arquivos contidos no pacote. 
\item [\textbf{-s } ] Exibe 
os \textit{estados } dos arquivos no pacote (implica \textbf{-l }). O estado de cada arquivo 
é \textit{normal }, \textit{não instalado } (uninstalled), ou \textit{substituído } (replaced). 
\item [\textbf{-d 
} ] Lista apenas os arquivos de documentação (implica \textbf{-l }). 
\item [\textbf{-c } ] Lista apenas 
os arquivos de configuração (implica \textbf{-l }). 
\item [\textbf{--scripts } ] Lista os scripts de 
shell do pacote, que são usados no processo de instalação e desinstalação, 
se existirem. 
\item [\textbf{--dump } ] Exibe informações dos arquivos como segue: caminho 
tamanho mtime md5sum modo dono grupo isconfig isdoc rdev symlink. Isto 
deve ser usado com uma das opções \textbf{-l }, \textbf{-c }, \textbf{-d }. mtime indica o dia e hora 
de criação do arquivo, isdoc indica se o arquivo é  documentação e isconfig 
indica se é um arquivo de configuração. 
\end{dispitems}


  \subsubsection{OPÇÕES DE VERIFICAÇÃO }
A forma 
geral de um comando de verificação é 

	\textbf{rpm -V$|$-y$|$--verify [opções-de-verificação] 
} 

Verificar um pacote compara informações sobre os arquivos do pacote instalados 
e as informações sobre eles, tiradas do pacote original e armazenadas 
no banco de dados do rpm. Entre outras coisas, verificar compara o tamanho, 
a soma MD5, permissões, tipo, dono e grupo de cada arquivo. Quaisquer discrepâncias 
serão exibidas. As opções de especificação de pacotes são as mesmas que 
para consulta de pacotes. 

 Arquivos que não foram instalados do pacote, 
por exemplo, arquivos de documentações que foram excluídos usando a opção 
"\textbf{--excludedocs }", serão ignorados silenciosamente. 

 O formato da saída é 
uma cadeia de 8 caracteres, um possível "\textbf{c }" denotando um arquivo de configuração, 
e então o nome do arquivo. Cada um dos oito caracteres denota o resultado 
da comparação de um atributo do arquivo com o valor registrado no banco 
de dados do RPM. Um simples "\textbf{. }" indica um teste bem sucedido. Os seguintes 
caracteres denotam falha em algum teste: 

 \begin{dispitems}
\item [\textbf{5 } ] Soma MD5 
\item [\textbf{S } ] Tamanho do arquivo 

\item [\textbf{L } ] Vínculo simbólico (link) 
\item [\textbf{T } ] Mtime 
\item [\textbf{D } ] Dispositivo 
\item [\textbf{U } ] Usuário 
\item [\textbf{G } ] Grupo 

\item [\textbf{M } ] Modo (inclui permissões e tipo de arquivo) 
\end{dispitems}


  \subsubsection{VALIDAÇÃO DE ASSINATURA 
}
A forma geral de um comando de validação de assinatura é 

	\textbf{rpm --checksig 
$<$arquivo\_pacote$>$+ } 

Isto valida a assinatura PGP do pacote para garantir 
a integridade e origem do pacote. A configuração do PGP é lida a partir 
de /etc/rpmrc. Veja a seção ASSINATURAS PGP para detalhes. 

  \subsubsection{OPÇÕES DE DESINSTALAÇÃO 
}
A forma geral de um comando de desinstalação é 

	\textbf{    rpm -e $<$nome\_do\_pacote$>$+ 
} 

\begin{dispitems}
\item [\textbf{--allmatches } ] Remove todas as versões do pacote que casarem com \textit{$<$nome\_do\_pacote$>$ 
}. Normalmente um erro é exibido se \textit{$<$nome\_do\_pacote$>$ } casar com múltiplos 
pacotes. 
\item [\textbf{--noscripts } ] Não executa os scripts de pré e pós desinstalação. 
\item [\textbf{--nodeps 
} ] Não verifica se dependências serão quebradas antes de desinstalar o pacote. 

\item [\textbf{--test } ] Não desinstala nada, apenas simula todos os movimentos (O que conta 
é a emoção!). opções \textbf{-vv }. 
\end{dispitems}


  \subsubsection{OPÇÕES DE CONSTRUÇÃO }
A forma geral de um comando 
de construção é 

    \textbf{rpm -[b$|$t]\textit{O }} [opções-de-construção] $<$spec\_do\_pacote$>$+  

O 
parâmetro usado é \textbf{-b } se um arquivo spec (especificações) está sendo usado 
para construir o pacote e \textbf{-t } se o rpm deve procurar dentro de um arquivo 
tar gzipado, .tar.gz (ou compactado com \textit{compress }, .tar.Z) pelo arquivo de 
especificações a utilizar. Depois do primeiro parâmetro, o próximo argumento 
(\textit{O }) especifica os estágios de construção que devem ser feitos, sendo 
um entre as seguintes possibilidades: 

 \begin{dispitems}
\item [\textbf{-bp } ] Executa o estágio "\%prep" do 
arquivo de especificações. Normalmente isso envolve a descompactação do 
código fonte e a aplicação de qualquer patch (modificações). 
\item [\textbf{-bl } ] Faz uma 
"verificação de lista". A seção "\%files" do arquivo de especificações é 
expandida, e testes são feitos para garantir que os arquivos existam. 
\item [\textbf{-bc 
} ] Executa o estágio "\%build" do arquivo de especificações (depois de passar 
pelo estágio prep). Isto geralmente envolve algo equivalente a um "make". 

\item [\textbf{-bi } ] Executa o estágio "\%install" do arquivo de especificações (depois 
de passar pelos estágios prep e build). Isto geralmente envolve algo equivalente 
a um "make install". 
\item [\textbf{-bb } ] Constrói um pacote binário (depois de passar pelos 
estágios prep, build e install). 
\item [\textbf{-ba } ] Constrói os pacotes binário e fonte 
(depois de passar pelos estágios prep, build e install). 
\end{dispitems}


As seguintes opções 
também podem ser utilizadas: \begin{dispitems}
\item [\textbf{--short-circuit } ] Pula direto para o estágio 
especificado (isto é, pula todos os estágios precedendo o estágio especificado). 
Válida somente com \textbf{-bc } e \textbf{-bi }. 
\item [\textbf{--timecheck } ] Define o tempo de "verificação 
de tempo" (0 para desativar). Este valor também pode ser definido no arquivo 
de configuração (rpmrc) com "timecheck:". O valor da verificação de tempo 
expressa, em segundos, a idade máxima de um arquivo sendo empacotado. Avisos 
serão impressos sobre todos os arquivos mais velhos que a verificação 
de tempo. 
\item [\textbf{--clean } ] Remove a árvore de construção depois que os pacotes são 
feitos. 
\item [\textbf{--rmsource } ] Remove os arquivos fonte e o arquivo de especificações 
depois de construir o pacote (também pode ser usado sozinho, ex. "\textbf{rpm --rmsource 
bla.spec }"). 
\item [\textbf{--test } ] Não executa nenhum estágio de construção (build). Útil 
pra testar arquivos de especificação. 
\item [\textbf{--sign } ] Inclui uma assinatura PGP no 
pacote. Esta assinatura pode ser utilizada para verificar a integridade 
e a origem do pacote. Veja a seção ASSINATURAS PGP para os detalhes do 
/etc/rpmrc. 
\end{dispitems}


  \subsubsection{OPÇÕES DE RECONSTRUÇÃO E RECOMPILAÇÃO }


 Estas são duas outras 
formas de chamar o rpm: 

 \textit{\textbf{rpm --recompile $<$arquivo\_de\_pacote\_fonte$>$+ }} 

 \textit{\textbf{rpm 
--rebuild $<$arquivo\_de\_pacote\_fonte$>$+ }} 

 Quando chamado desta forma, o rpm instala 
o pacote fonte nomeado, e então o prepara, compila, e instala. Além disso, 
\textbf{--rebuild } constrói um novo pacote binário. Quando a construção terminar, 
o diretório usado para isso é removido (como em \textbf{--clean }) e os fontes e 
o arquivo de especificações são removidos. 

  \subsubsection{ASSINANDO UM RPM EXISTENTE 
}


 \textit{\textbf{rpm --resign $<$arquivo\_de\_pacote\_binário$>$+ }} 

 Esta opção gera e insere uma 
nova assinatura para os pacotes listados. Quaisquer assinaturas existentes 
são removidas. 

  \subsubsection{ASSINATURAS PGP }


 Para utilizar os opções de assinatura 
do RPM você deve ser capaz de executar o PGP (ele deve estar instalado, 
e no seu caminho de procura), e ele deve ser capaz de encontrar um chaveiro 
(key ring) com as chaves públicas do RPM nele. Normalmente, o RPM usa os 
padrões do PGP para localizar os chaveiros (obedecendo o PGPPATH). Se seus 
chaveiros não estão localizados onde o PGP espera, sua localização deve 
ser especificada no arquivo /etc/rpmrc. 

 \begin{dispitems}
\item [\textbf{pgp\_path } ] Substitui /usr/lib/rpm. 
Deve conter os seus chaveiros. 
\end{dispitems}


Se você quer ser capaz de assinar os pacotes 
que você mesmo cria, você também vai precisar criar seu próprio par de 
chaves pública e privada (veja o manual do PGP). Além das entradas no /etc/rpmrc 
citadas acima, você deve adicionar as seguintes: 

 \begin{dispitems}
\item [\textbf{signature } ] O tipo de 
assinatura. Por enquanto apenas pgp é suportado. 
\item [\textbf{pgp\_name } ] O nome do "usuário" 
com cuja chave você deseja assinar seus pacotes. 
\end{dispitems}




 Quando construir pacotes 
você então adiciona a opção --sign à linha de comando. Você será perguntado 
sobre a sua frase secreta (pass phrase), e o pacote será construído e 
assinado. 

  \subsubsection{OPÇÕES DE RECONSTRUÇÃO DO BANCO DE DADOS }


 A forma geral de 
um comando de reconstrução do banco de dados é 

	\textbf{rpm --rebuilddb } 



 As únicas 
opções que este modo suporta são \textbf{--dbpath } and \textbf{--root }. 

  \subsubsection{EXIBIR CONFIGURAÇÃO 
}


 Executar 

 

	\textbf{rpm --showrc } 

 

exibe os valores que o RPM irá utilizar para todas 
as opções que podem estar definidas em seus arquivos de configuração. 

 
 \subsubsection{OPÇÕES DE FTP }


 O RPM inclui um programa de FTP simples para facilitar 
a instalação e consulta de pacotes que estão disponíveis na Internet. Arquivos 
de pacotes para instalação, atualização ou consulta podem ser especificados 
como uma URL no estilo ftp: 

 

	\textbf{ftp://$<$usuário$>$:$<$senha$>$@máquina/caminho/para/o/pacote.rpm 
} 

Se a parte \textbf{:senha } for omitida, a senha será perguntada (uma vez para 
cada par usuário/máquina). Se o usuário e a senha forem omitidos, ftp anônimo 
será usado. Em todos os casos, transferência passiva (PASV) será usada. 


 O RPM permite que as seguintes opções sejam usadas com URLs de ftp: 

 
\begin{dispitems}
\item [\textbf{--ftpproxy $<$máquina$>$ } ] A máquina $<$máquina$>$ será usada como servidor proxy para 
todas as transferências, permitindo que usuários utilizem o ftp através 
de firewalls que utilizem sistemas de proxy. Esta opção também pode ser 
especificada em um arquivo de configuração. 
\end{dispitems}


 \begin{dispitems}
\item [\textbf{--ftpport $<$porta$>$ } ] Especifica 
o número da porta TCP a utilizar para a conexão ftp ao invés da porta 
padrão (21). Esta opção também pode ser especificada em um arquivo de configuração. 

\end{dispitems}


  \subsubsection{ARQUIVOS }
/etc/rpmrc 

 ~/.rpmrc 

 /var/lib/rpm/packages 

 /var/lib/rpm/pathidx 


 /var/lib/rpm/nameidx 

 /tmp/rpm* 

   \subsubsection{VEJA TAMBÉM }
\textbf{\textsf{glint}(8)\textbf{},} \textbf{\textsf{rpm2cpio}(8)\textbf{},} 
 

\textbf{http://www.redhat.com/rpm}  

\textbf{http://www.rpm.org}  

\textbf{http://lie-br.conectiva.com.br} 
 \subsubsection{AUTORES }
Marc Ewing $<$marc@redhat.com$>$ 

 Erik Troan $<$ewt@redhat.com$>$ 
