Ferramentas do usuário

Ferramentas do site


infra-estrutura:linux:gerenciamento_pacotes_rpm

Essa é uma revisão anterior do documento!


Gerenciamento de pacotes RPM

Remoção de pacotes de RPM

Para remover um pacote e possível utilizar o yum ou a opção -e do rpm. Para executar um teste antes de remover

 rpm -e --test minicom

Consultando pacotes RPM

Para consulta de pacotes RPM utilize

rpm -q minicom
rpm -qi minicom

Exibindo arquivos dentro do arquivo RPM

rpm -ql minicom

Consulta todos os pacotes instalados

rpm -qa 

Consulta as dependencias de um pacote instalado

rpm -qR minicom

Checando integridade do pacote RPM

[root@echidna ~]# rpm -vK vim-enhanced-7.2.411-1.fc12.x86_64.rpm
vim-enhanced-7.2.411-1.fc12.x86_64.rpm:
    Header V3 RSA/SHA256 signature: OK, key ID 57bbccba
    Header SHA1 digest: OK (f9a199545a515f7ff0716729768b41eb68fe29a8)
    V3 RSA/SHA256 signature: OK, key ID 57bbccba
    MD5 digest: OK (d4045f1f72d48073e3f401ee9d1f71cf)
    

Verificação de um pacote instalado

[ian@echidna ~]$ rpm -V vim-common

Remover pacote RPM não verificando dependências

Normalmente, o sistema de gerenciamento de pacote mantém seus pacotes em ordem. No entanto, se você excluir algum arquivo que seja uma parte importante de um pacote—e reinstalar o pacote sem removê-lo, isso não corrigirá o problema—então é preciso remover o pacote antes de instalá-lo novamente. Neste caso, muito provavelmente você irá querer excluir a cópia existente e reinstalá-lo, sem a necessidade de desinstalar e reinstalar todos os pacotes que dependem dele. Para isso, é possível usar a opção –nodeps do comando de rpm para evitar verificação de dependência ao remover um pacote. A listagem 24 mostra como isso funciona se você removeu acidentalmente o arquivo /usr/bin/xxd file, que é parte do pacote vim-common, como fizemos anteriormente.

	
[root@echidna ~]# rm /usr/bin/xxd
rm: remove regular file `/usr/bin/xxd'? y
[root@echidna ~]# # Oops! we needed that file
[root@echidna ~]# rpm -Fvh vim-common-7.2.411-1.fc12.x86_64.rpm 
[root@echidna ~]# ls /usr/bin/xxd
ls: cannot access /usr/bin/xxd: No such file or directory
[root@echidna ~]# # Oh! Freshening the package didn't replace the missing file
[root@echidna ~]# rpm -e vim-common
error: Failed dependencies:
    vim-common = 2:7.2.411-1.fc12 is needed by (installed) vim-enhanced-2:7.2.411-1.f
c12.x86_64
[root@echidna ~]# # Can't remove vim-common because vim-enhanced needs it
[root@echidna ~]# rpm -e --nodeps vim-common
[root@echidna ~]# # Bypassing the dependency check allowed removal
[root@echidna ~]# rpm -Uvh vim-common-7.2.411-1.fc12.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:vim-common             ########################################### [100%]
[root@echidna ~]# # Update (or install) vim-common again
[root@echidna ~]# ls /usr/bin/xxd
/usr/bin/xxd
[root@echidna ~]# # And /usr/bin/xxd is back

Extraindo conteúdo do pacote RPM

rpm2cpio ../gcl-selinux*.rpm | cpio -idv

Assinatura de pacotes RPM

Diretório de localização das assinaturas do RPM /etc/pki/rpm-gpg/ :

# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7

Any of the keys whether they are official CentOS 7 archive signing keys or other unofficial archive signing keys found at this location can be imported into the system by using rpm command. For example the following linux command will import RPM-GPG-KEY-CentOS- signing key:

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# rpm --import /etc/pki/rpm-gpg/*

Para listar todas as chaves importadas:

# rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
gpg-pubkey-f4a80eb5-53a7ff4b    gpg(CentOS-7 Key (CentOS 7 Official Signing Key) )
gpg-pubkey-b6792c39-53c4fbdd    gpg(CentOS-7 Debug (CentOS-7 Debuginfo RPMS) )
gpg-pubkey-8fae34bd-538f1e51    gpg(CentOS-7 Testing (CentOS 7 Testing content) )

Para remover uma chave do “gpg(CentOS-7 Debug (CentOS-7 Debuginfo RPMS) )”

# rpm -e gpg-pubkey-b6792c39-53c4fbdd

Verificando se a chave foi removida

# rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
gpg-pubkey-f4a80eb5-53a7ff4b    gpg(CentOS-7 Key (CentOS 7 Official Signing Key) )
gpg-pubkey-8fae34bd-538f1e51    gpg(CentOS-7 Testing (CentOS 7 Testing content) )