来自: 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头-V3-RSASHA1签名密钥,ID-坏/
因此,如果您更新仅安装其中一个软件包,则最终会出现损坏的YUM和RPM。
在尝试运行YUM和RPM命令时,您可能会看到类似这些错误消息:
错误:rpmts_HdrFromFdno:标题V3 RSA / SHA1签名,密钥ID xxx BAD
错误:rpmdbNextIterator:跳过h#1784标题V3 RSA / SHA1签名,密钥ID xxx BAD
大多数时候你会安装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或wget RPMs
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
百胜更新
如果你仍然有问题,你可能不得不重新安装如下64位服务器的yum,32位服务器只需要找到32位版本的rpms!但大多数服务器不需要这样:
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的问题,有两种方法:
首先,从备份的相同的良好服务器上复制/ 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
那你应该好好去!
第二种方法是通过检查rpm安装日志重新安装所有安装的rpm。请参阅下面的评论
错误报告: https://bugzilla.redhat.com/show_bug.cgi?id=1182337