文档章节

记一次惨痛的教训—yum、rpm

阿dai学长
 阿dai学长
发布于 2018/03/19 23:54
字数 1438
阅读 1.4K
收藏 2

因为系统配置硬件监控需要,在自己创建一个rpm包的时候系统没有rpmbuild工具,于是使用yum安装相关的包,但是安装过程中发现一些依赖包之间存在版本冲突,总是安装失败,于是手欠"rpm -e --nodeps -force libxml2-2.9.1-5.el7_1.2.i686"强制删除了该包,于是开始了一系列问题:
系统环境: centos7

开篇: yum挂了!!!

[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 ,但是这仅仅只是开始。。。

中篇:我“爱”本地yum源

根据上面搜到的资料,查找对应的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”命令!

© 著作权归作者所有

阿dai学长
粉丝 77
博文 267
码字总数 341288
作品 0
朝阳
运维
私信 提问
加载中

评论(0)

redhat 7.2更新yum源时踩的坑

一、update yum 1、先查看redhat7.2中yum的包版本[root@localhost jiayimeng]# rpm -qa | grep yumyum-rhn-plugin-2.0.1-5.el7.noarchyum-metadata-parser-1.1.4-10.el7.x86_64yum-langpacks......

元婴期
2017/12/22
0
0
CentOS7-Python系列】之一【python-devel教训】

1、一些Python包安装 [root@v6i6v ~]# pip install virtualenv [root@v6i6v v6i6v]# pwd /home/v6i6v 使用虚拟环境,注意在新建虚拟环境时,可以选择是否使虚拟环境读取系统python的包。 若不...

测试-說不
2016/04/11
910
0
我的理财经历第一步-记账

很早之前就听说过理财是这辈子必须学会的一项技能,然后花钱是需要记账的,我相信大家都知道这个道理。但是如果没有经历过一些让你触目惊心的事,我们是不会意识到它的重要性的。  那是2...

刘飞_
2017/05/05
0
0
多么痛的领悟:十三起惨痛宕机案例

多么痛的领悟:十三起惨痛宕机案例 运维派2018-01-031 阅读 案例宕机 社区有很多兄弟分享惨痛宕机案例,提醒大家需警惕,以下介绍几起,满满都是血的教训…… (以下案例来自社区多位会员 […...

运维派
2018/01/03
0
0
CentOS 7 YUM 10分钟快速安装 LNMP 环境详细教程

源码编译安装 LNMP 环境虽然便于自定义,但是对于小型服务器来说,漫长的编译时间让人无法等待。如果能在 10 分钟后内搞定环境安装,再好不多了。 那么如何在 10 分钟内快速安装完 LNMP 环境...

Yomut
2016/10/23
368
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 提高不了工作效率和脸有关系

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 1 《夏令时记录(piano.ver)》- ゆめこ 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
67
2
List的一波操作

public static void main(String[] args) { List<Entity> list = new ArrayList<>(); list.add(new Entity(1)); list.add(new Entity(2)); list.add(new Entity(3)); ......

那个猩猩很亮
今天
75
0
Spring基础

主要用于service层; 轻量级java开发框架; 各层 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis , jdbcTemplate --> spring-data Spring核心:控制反转IOC 切面编...

七宝1
今天
30
0
解决overflow+border-radius+transform圆角问题

网上还有其他版本,但是对我来说都不好使,下面是我在Chrome上的代码。overflow:hidden依然是不能正常使用,换成unset就可以,读者如果有更好的解决方案,请留言,谢谢。 <figure> <img...

hi懒喵
今天
53
0
《C语言》—— 数组

书籍使我变成了一个幸福的人,使我的生活变成轻松而舒适的诗。——高尔基 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 点关注,不迷路!...

龙跃十二
今天
84
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部