from:http : //kiteplans.info/2015/01/15/solved-bug-centos-yum-rpm-broken-by-nss-softokn-3-14-3-19-el6_6-update-error-rpmts_hdrfromfdno- error-rpmdbnextiterator-header-v3-rsasha1-signature-key-id-bad /
したがって、yum updateがパッケージの1つのみをインストールした場合、YUMとRPMが壊れてしまいます。YUMおよびRPMコマンドを実行しようとすると、次のようなエラーメッセージが表示される場合があります。ほとんどの場合、nss-softokn-3.14.3-19はインストールされていますが、nss-softokn-freebl-3.14.3-19はインストールされていません。
これを修正するには、以下を行う必要があります。
1. nss-softokn-freebl-3.14.3-19
yumdownloader nss-softokn-freeblを手動でダウンロードするか、RPMをwgetします
64ビットサーバー/ x86_64実行
wget ftp://195.220.108.108/linux/centos/6.6/updates/x86_64/Packages/nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm
32ビットサーバー/ i686実行
wget ftp://195.220.108.108/linux/centos/6.6/updates/i386/Packages/nss-softokn-freebl-3.14.3-19.el6_6.i686.rpm
2. RPMを抽出します
64ビットサーバー/ x86_64実行
rpm2cpio nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm | cpio -idmv
32ビットサーバー/ i686実行
rpm2cpio nss-softokn-freebl-3.14.3-19.el6_6.i686.rpm | cpio -idmv
3. .libfreeblpriv3。*を正しい場所にコピーします
64ビットサーバー/ x86_64実行
cp ./lib64/libfreeblpriv3.* /lib64
32ビットサーバー/ i686実行
cp ./lib/libfreeblpriv3.* /lib
4. Yum Updateを再実行して、nss-softokn-freeblとFIX YUMおよびRPMを更新します
yumの更新それでも問題がある場合は、64ビットサーバーの場合は以下のようにyumを再インストールする必要があります。32ビットサーバーは32ビットバージョンのrpmを見つける必要があります。しかし、ほとんどのサーバーはこれを必要としません。
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-60.el6.centos.noarch.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-6.el6.centos.12.2.x86_64.rpm
rpm -ivh --nodeps yum-3.2.29-60.el6.centos.noarch.rpm
rpm -ivh yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
rpm -ivh centos-release-6-6.el6.centos.12.2.x86_64.rpm
また、問題を修正しようとして破損したrpmdbを復元する方法についていくつか質問がありました。2つの方法があります。
最初に、/ var / lib / rpmフォルダーの適切なコピーを、バックアップの同一の良好なサーバーからコピーします。バックアップは正しいですか?
正常なサーバーまたはバックアップから:
tar -cf rpmbackup.tar /var/lib/rpm
次に、tarを不良サーバーに送信します
壊れたサーバー:
cd /var/lib
mv /var/lib/rpm /var/lib/rpm.bak
tar -xf /location/to/rpmbackup.tar
その後、あなたは行ってもいいはずです!
2番目の方法は、rpmインストールログを確認して、これまでにインストールされたすべてのrpmを再インストールすることです。以下のコメントをご覧ください
バグレポート:https : //bugzilla.redhat.com/show_bug.cgi?id=1182337