问题
在 CentOS 6.4 x86_64 上无论通过 yum 或 rpm 安装软件时,出现以下错误:
yum install glibc-devel
...
error: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: BAD
...
Problem opening package glibc-2.12-1.212.el6.x86_64
分析
rpm -ivh 单独去安装软件也提示上面的错误。rpm -qa 无法列出系统中安装过的软件包,但许多库文件和软件命令是存在的。也尝试过 rpm --rebuilddb 来重建数据库,但情况依然没有得到改善(centos 官网说千万不要在系统 broken 的情况下 rebuilddb,不然有可能变成 destroy)
由上面的推断可知问题出现在 rpm 这个软件包管理工具本身,但此时又无法通过 rpm 来重新安装自己,所以只能找到具体是什么因素导致的。好在官网的这篇较新的文章正好就是解决该 BUG:WARNING: nss-softokn-3.14.3-19.el6_6 updates may be broken :
大致是说当你使用 yum update 去更新你的系统时,nss-softokn、nss-softokn-freebl 和其它软件一起都得到更新,所以不会有问题。但如果单独去更新某一个软件,如 yum update nss-softokn 或 yum install 引起它的依赖包也升级,使得 nss-softokn 和 nss-softokn-freebl 版本不匹配,就会导致 rpm/yum 全面停止工作,表现就是上面的 key .. BAD。
解决
解决起来也很方便,首先你可以通过 cat /var/log/messages|grep nss 看到 nss-softokn-freebl 的版本:
cat /var/log/messages|grep nss-softokn
Mar 2 09:56:18 poprod yum[14920]: Updated: nss-softokn-3.14.3-19.el6_6.x86_64
Mar 2 14:43:29 poprod yum[33040]: Installed: nss-softokn-freebl-3.14.3-19.el6_6.x86_64
Mar 2 14:44:14 poprod yum[33047]: Installed: nss-softokn-freebl-3.14.3-19.el6_6.x86_64
...
下载 nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm:
解压 rpm:
rpm2cpio nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm | cpio -idmv
复制 libfreeblpriv3.* 覆盖旧的库文件:
cp -r ./usr/lib64/lib* /usr/lib64/
试一下 yum install gcc 看能否正常工作,如果不行,继续下一步:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-60.el6.centos.noarch.rpm
rpm -ivh --nodeps yum-3.2.29-60.el6.centos.noarch.rpm
应该就好了:
rpm -qa
yum install glibc-devel
**yum **安装软件报 Freeing read locks for locker
因为 RPM 数据库出现损坏导致的,它导致所有的软件的升级、安装甚至是删除都会出现问题,终端出现乱码,YUMEX 也用不成,RPM 命令 也用不成。原因是 RPM 数据库被破坏
解决方法:
#su – root
#cd /var/lib/rpm/
#for i in ls | grep ‘db.’
;do mv i i.bak;done #做一下备份
#rpm --rebuilddb #重建该数据库(rebuild the database indices from the installed package headers)
#yum clean all
注意区别:–rebuilddb:重建已经安装的 RPM 资料库 ,–initdb:创建一个新的 RPM 资料库
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于