Essa é uma revisão anterior do documento!
rpm -ivh pacote.rpm
rpm -Uvh pacote.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
Para consulta de pacotes RPM utilize
rpm -q minicom
rpm -qi minicom
rpm -ql minicom
rpm -qa
rpm -qR minicom
[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)
[ian@echidna ~]$ rpm -V vim-common
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
rpm2cpio ../gcl-selinux*.rpm | cpio -idv
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) )
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
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
# 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
# rpm -vv --rebuilddb
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