Verificação do pacote baixado com rpm

2

Eu queria instalar um pacote no CentOS 6 via rpm (por exemplo, o atual epel-release ).

EDIT: É claro que eu sempre prefiro a instalação via yum , mas de alguma forma eu não consegui instalar esse pacote específico usando essa abordagem normal. Como tal, o EPEL / FAQ recomenda abaixo da versão 2.

Como estou baixando o pacote através de um canal inseguro (http), eu queria ter certeza de que a integridade do arquivo é verificada usando informações que não são fornecidas com o próprio arquivo baixado. Isso é especialmente verdadeiro para todas essas abordagens?

Eu já vi várias abordagens para isso na internet:

Versão 1

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

Versão 2

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

Versão 3

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -K epel-release-6-7.noarch.rpm
rpm -i epel-release-6-7.noarch.rpm

Eu não sei muito bem o rpm , então me perguntei como eles poderiam ser diferentes? Meu palpite (depois de ler a manpage ) é que

  • o primeiro só deve ser usado quando o pacote não estiver instalado anteriormente,
  • o segundo também removeria as versões anteriores do pacote após a instalação,
  • os dois primeiros omitem algumas etapas de verificação antes da instalação real que são feitas por rpm -K .

Então, minhas principais perguntas neste momento são

  • As minhas suposições estão corretas ou estou faltando alguma coisa?
  • O rpm --import ... é implicitamente feito também para as duas primeiras abordagens e, caso contrário, não é necessário fazê-lo depois de tudo?
  • Essas verificações adicionais são realizadas por rpm -K ... são relevantes?
  • Qual é a melhor (mais segura, mais confiável, mais sustentável, ...) maneira de instalar pacotes via rpm em geral?
por moooeeeep 12.12.2012 / 11:03

2 respostas

1

Are my guesses correct or am I missing something?

Suas suposições estão corretas.

Is the rpm --import ... implicitly done for the first two approaches as well

Não, não é. Nenhuma verificação é feita na assinatura GPG do pacote nas duas primeiras abordagens. O pacote contém uma assinatura, mas não contém a chave , portanto, não é realmente possível ser feito automaticamente. Mesmo yum não importa automaticamente as chaves GPG porque cabe ao administrador aprovar cada chave.

, and if not, isn't it necessary to do so after all?

É uma boa ideia. Mas você precisa obter a chave de algum outro lugar (como instalar um pacote -release ).

Are these additional checks performed by rpm -K ... any relevant?

rpm -K verifica todas as assinaturas no pacote. Isso inclui somas de verificação (para corrupção não intencional) e assinatura de GPG, se presente, para verificação de autenticidade. As checagens são verificadas ao instalar o pacote, mas a assinatura do GPG é sua.

What is the best (most secure, most reliable, most maintainable, ...) way of installing packages via rpm in general?

Use yum . Você pode usar yum para instalar um pacote baixado também. Quando você wget do arquivo e rpm --import da chave, você pode yum install epel-release-6-7.noarch.rpm o arquivo baixado do disco local.

    
por 12.12.2012 / 17:26
1

Primeiro: man rpm .
Então: man yum .
(às vezes é útil vê-lo em HTML)

Na prática, eu costumo usar o framework YUM para instalar novos pacotes . Nos modernos sistemas Red Hat / CentOS / Fedora, o YUM satisfaz as dependências de pacotes e lida com o processo de instalação.

Se eu fizer acabar baixando um arquivo rpm diretamente (via curl, wget ou compilação local), minha linha de comando go-to rpm é:

rpm -ivh packagename.rpm

O -i é "instalar". O -v é "detalhado". O -h é "hash" e exibe uma barra de progresso durante a instalação.

[root@xt ~]# rpm -i ncdu-1.5-1.el5.x86_64.rpm 
<no output>

versus

[root@xt ~]# rpm -iv ncdu-1.5-1.el5.x86_64.rpm 
Preparing packages for installation...
ncdu-1.5-1.el5

versus

[root@xt ~]# rpm -ivh ncdu-1.5-1.el5.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:ncdu                   ########################################### [100%]

rpm -i packagename.rpm faz o trabalho, mas anos fazendo isso levaram a uma tendência natural de usar -ivh . Barras de progresso são boas.

A opção -U é para atualizar um pacote existente. Novamente, o caso de uso para isso é mais restrito, pois o YUM também pode lidar com atualizações de pacotes. Eu normalmente só uso -U se houver um erro indicando arquivos conflitantes de um pacote RPM instalado anteriormente.

Eu nunca usei rpm -K . Eu não preciso disso em 12 anos ... É para verificar o arquivo de pacote real do rpm , mas se você baixar de um repositório YUM assinado (via chave GPG), eu acho que uma etapa extra de verificação é desnecessária.

    
por 12.12.2012 / 11:39

Tags