====== Gerenciamento de pacotes RPM ====== ===== Instalar pacote RPM ===== rpm -ivh pacote.rpm ===== Atualizar pacote RPM ===== rpm -Uvh pacote.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 ===== Visualizar arquivos de configuração de um determinado pacote ===== rpm -qc ===== 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) ) ===== Validação da assinatura de um pacote ===== rpm - - checksig rp-pppoe-3.10-8.el6.i686.rpm # rpm -K rp-pppoe-3.10-8.el6.i686.rpm ===== Banco de dados do RPM ===== ===== Backup do banco de dados RPM ===== Fazendo o backup do banco de dados RPM que esta no diretório /var/lib/rpm. # mkdir /backups/ # tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz /var/lib/rpm ===== Verificando integridade do banco de dados RPM ===== # /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages ===== Realizar dump e carregar o banco de dados RPM ===== # cd /var/lib/rpm/ # mv Packages Packages.back # /usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages # /usr/lib/rpm/rpmdb_verify Packages ===== Reconstruir banco de dados RPM ===== # rpm -vv --rebuilddb ===== DCRPM ===== O comando dcrpm (detect and correct rpm) é utilizado para identificar e corrigir erros com a base de dados RPM corrompida. # git clone https://github.com/facebookincubator/dcrpm.git # cd dcrpm # python setup.py install # dcrpm