因为系统配置硬件监控需要,在自己创建一个rpm包的时候系统没有rpmbuild工具,于是使用yum安装相关的包,但是安装过程中发现一些依赖包之间存在版本冲突,总是安装失败,于是手欠"rpm -e --nodeps -force libxml2-2.9.1-5.el7_1.2.i686"强制删除了该包,于是开始了一系列问题: 系统环境: centos7
[root@test ~]# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
libxml2.so.2: cannot open shared object file: No such file or directory
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.4.3 (#1, Nov 11 2010, 13:30:19)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://wiki.linux.duke.edu/YumFaq
此时,真是叫天天不应,叫地地不灵。百度、Google,经过一番查找总算有点眉目:http://blog.51cto.com/hellosa/503672 ,但是这仅仅只是开始。。。
根据上面搜到的资料,查找对应的rpm包进行安装,本以为很快就可以解决问题,但是并没有,并不是方法不对,而是因为本地yum源惹的祸!!!最近刚刚重装的系统,在初始化系统环境时使用的是本地的yum源,但是发现有好多包因为版本冲突问题没能安装成功,然后才选择手动安装硬件监控工具:http://book.open-falcon.org/zh/usage/hwcheck.html (制作rpm包),再者就如上面所说,各种问题接踵而至。具体问题是:
[root@rd2 rpm]# rpm -ivh bzip2-libs-1.0.6-13.el7.i686.rpm elfutils-libelf-0.168-8.el7.i686.rpm
警告:bzip2-libs-1.0.6-13.el7.i686.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
libattr.so.1 被 libacl-2.2.51-12.el7.i686 需要
libattr.so.1(ATTR_1.0) 被 libacl-2.2.51-12.el7.i686 需要
libattr.so.1 被 libcap-2.22-9.el7.i686 需要
... ...(省略部分报错)
各种rpm包之间各种依赖,还有“NOKEY”现象,真的是头都大了,yum不能用,只能手动下载对应的rpm包然后使用“rpm -ivh *.rpm --force(--force解决nokey问题)”来安装。在此展示一下我下载的rpm包(如果你的系统在部署的时候直接使用的网上的yum源,应该不至于这么惨烈):
bzip2-libs-1.0.6-13.el7.i686.rpm nspr-4.13.1-1.0.el7_3.i686.rpm
elfutils-libelf-0.168-8.el7.i686.rpm nss-3.28.4-8.el7.i686.rpm
file-libs-5.11-33.el7.i686.rpm nss-pem-1.0.3-4.el7.i686.rpm
glibc-2.17-196.el7_4.2.i686.rpm nss-softokn-3.28.3-6.el7.i686.rpm
glibc-2.17-196.el7.i686.rpm nss-softokn-freebl-3.28.3-6.el7.i686.rpm
glibc-common-2.17-196.el7.x86_64.rpm nss-util-3.28.4-3.el7.i686.rpm
libacl-2.2.51-12.el7.i686.rpm pcre-8.32-17.el7.i686.rpm
libattr-2.4.46-12.el7.i686.rpm popt-1.13-16.el7.i686.rpm
libcap-2.22-9.el7.i686.rpm readline-6.2-10.el7.i686.rpm
libdb-5.3.21-20.el7.i686.rpm rpm-build-libs-4.11.3-25.el7.i686.rpm
libgcc-4.8.5-16.el7.i686.rpm rpm-libs-4.11.3-25.el7.i686.rpm
libselinux-2.5-11.el7.i686.rpm sqlite-3.7.17-8.el7.i686.rpm
libsepol-2.5-6.el7.i686.rpm xz-libs-5.2.2-1.el7.i686.rpm
libstdc++-4.8.5-16.el7.i686.rpm yum-3.4.3-154.el7.centos.noarch.rpm
libxml2-2.9.1-6.el7_2.3.i686.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
libxml2-2.9.1-6.el7_2.3.x86_64.rpm yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm
lua-5.1.4-15.el7.i686.rpm zlib-1.2.7-17.el7.i686.rpm
ncurses-libs-5.9-13.20130511.el7.i686.rpm
待以上的包下载完成之后执行rpm -ivh命令终于不再提示依赖问题,但是仍有部分版本冲突问题存在,于是:
[root@rd2 rpm]# rpm -ivh bzip2-libs-1.0.6-13.el7.i686.rpm elfutils-libelf-0.168-8.el7.i686.rpm file-libs-5.11-33.el7.i686.rpm glibc-2.17-196.el7_4.2.i686.rpm glibc-2.17-196.el7.i686.rpm glibc-common-2.17-196.el7.x86_64.rpm libacl-2.2.51-12.el7.i686.rpm libattr-2.4.46-12.el7.i686.rpm libcap-2.22-9.el7.i686.rpm libdb-5.3.21-20.el7.i686.rpm libgcc-4.8.5-16.el7.i686.rpm libselinux-2.5-11.el7.i686.rpm libsepol-2.5-6.el7.i686.rpm libstdc++-4.8.5-16.el7.i686.rpm libxml2-2.9.1-6.el7_2.3.i686.rpm libxml2-2.9.1-6.el7_2.3.x86_64.rpm lua-5.1.4-15.el7.i686.rpm ncurses-libs-5.9-13.20130511.el7.i686.rpm nspr-4.13.1-1.0.el7_3.i686.rpm nss-3.28.4-8.el7.i686.rpm nss-pem-1.0.3-4.el7.i686.rpm nss-softokn-3.28.3-6.el7.i686.rpm nss-softokn-freebl-3.28.3-6.el7.i686.rpm nss-util-3.28.4-3.el7.i686.rpm pcre-8.32-17.el7.i686.rpm popt-1.13-16.el7.i686.rpm readline-6.2-10.el7.i686.rpm rpm-build-libs-4.11.3-25.el7.i686.rpm rpm-libs-4.11.3-25.el7.i686.rpm sqlite-3.7.17-8.el7.i686.rpm xz-libs-5.2.2-1.el7.i686.rpm yum-3.4.3-154.el7.centos.noarch.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm zlib-1.2.7-17.el7.i686.rpm --force
执行完上面的命令后,赶紧试试yum,结果:
[root@rd2 rpm]# yum
已加载插件:fastestmirror, priorities, versionlock
您需要给出命令
Usage: yum [options] COMMAND
List of Commands:
check 检查 RPM 数据库问题
check-update 检查是否有可用的软件包更新
clean 删除缓存数据
deplist 列出软件包的依赖关系
... ...
修复完成! 一个个下载rpm包太累了,在此提供一个以上rpm的私人下载链接:https://pan.baidu.com/s/1vF8nnwlUc0PCBeXYxuRHVw 密码:pnjs
千万不要随意强制删系统基础库文件!!! 如果需要替换服务器上已安装的版本为旧版本的rpm包,可以使用如下方法:
# 下载对应rpm包到本地
# 强制安装
rpm -ivh 包名.rpm --oldpackage --force
参考文档: Git源码:https://github.com/51web/hwcheck open-falcon:http://book.open-falcon.org/zh/usage/hwcheck.html sensor:http://www.antrol.com/archives/202 补充: 根据以上参考资料3.1章节创建rpm包后需要使用“rpm -ivh”进行安装后方可使用“hwcheck”命令!
(adsbygoogle = window.adsbygoogle || []).push({});