设为首页 收藏本站
查看: 1668|回复: 0

[经验分享] centos6.4下yum报错实例

[复制链接]

尚未签到

发表于 2018-4-23 10:16:41 | 显示全部楼层 |阅读模式
  说明:以下所有操作均是由超级管理员完成
  我一个朋友遇到这个问题,就是利用yum安装的时候报错。如图:
DSC0000.png

  当时他问我的时候,我一开始以为是Python版本不兼容问题,可能是Python升级后带来的问题,所以就给他说了两种方法
  1、修改yum配置文件:
vim /usr/bin/yum  修改第一行
#!/usr/bin/python 改为#!/usr/bin/python2.6.6  2、升级yum
  然后我朋友让我远程帮他,当我远程帮他修改这一行之后,又出现了新的问题。(此处没有截图)
  找不到Python2.6.6,然后我解压下载了Python2.6.5,然后安装,安装过程如下:
cd /usr/local/src/
wget   
tar xf Python-2.6.5.tar.bz2
cd Python-2.6.5
./configure
make && make install
#创建软连接
ln -s /usr/local/bin/python2.6.5 /usr/bin/python
#检查
python -V  安装成功
  然后执行yum,依然是这一问题,我想着是不是环境变量的问题,于是增加了环境变量
echo "export PATH=/usr/bin/python:$PATH" >> /etc/profile
source /etc/profile  又出现了没有权限的问题,然后我还是将配置文件修改为
#!/usr/bin/python2.6.6  然后执行,出现了No module named yum问题 ,查看Python路径
DSC0001.jpg

  然后发现Python路径混乱比较混乱。同样的有三种方法解决这一问题。
  方法一:
  就是修改文件 /usr/bin/yum,将那一行修改,但是很明显不可以,网上看是因为设置了环境变量,又安装了其他的Python版本,出现了连接混乱,导致yum找不到Python路径,于是将环境变量注释然后重新运行了环境变量,问题依然没有解决,然后尝试第二种方法。
  方法二:
  就是将Python回滚到默认的2.6.6版本。执行了下面两行。
rpm -qa | grep python- | grep 2.6
rpm -ivh --force --nodeps  但是祸不单行,执行第二句代码的时候出现报错(由于这是问题解决后才写的文档,所以此处的错误并没有截图)
  很无奈,只好尝试第三种方法。

  方法三:
  下载RPM包(根据自己的版本选择)
python-2.6.6-36.el6.x86_64.rpm
yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm
yum-3.2.29-40.el6.centos.noarch.rpm
yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
#执行安装
rpm -ivh --force --nodeps  *.rpm  到http://yum.baseurl.org/wiki下载tar包:yum-3.4.3.tar.gz
tar xf yum-3.4.3.tar.gz
cd yum-3.4.3
./yummain.py update  很显然这个方法也不适用,还比较麻烦。
  我再次尝试着重新安装yum和Python。以下是过程:
  下载需要的RPM包到此目录。(要下载的包看你的系统版本号,只要和你的系统版本号一致即可)
cd /usr/local/src/Python-2.6.6  #此目录看你的系统版本号python-2.6.6-36.el6.x86_64.rpm
python-urlgrabber-3.9.1-8.el6.noarch.rpm
python-devel-2.6.6-36.el6.x86_64.rpm
python-libs-2.6.6-36.el6.x86_64.rpm
yum-3.2.29-40.el6.centos.noarch.rpm  然后执行安装

rpm -Uvh --replacepkgs *.rpm  #执行这一步的时候我朋友问我--replacepkgs的作用,这里我说明一下,这个参数的意思是用一个副本替换一个包,当我们遇到需要重复安装软件包的时候,但是一般会报错,如果想要继续重复安装,就会用到这个参数。
  与这个参数相关的参数还有如下几个:
  --replacefiles #替换另一个包所拥有的文件,即就是软件包在安装的时候有某个文件已经被其他软件包安装调用过,再次安装就会报错,如果想要继续再次安装,就会用这个参数。
  --nodeps #安装或者升级的时候不检查依赖,即当安装的软件包所需要的依赖未安装的时候,就会报错,若是仍然要安装,就会用到这个参数。

  --force  #忽略包和文件的冲突强制安装,此方法不建议。
  --oldpackage    #允许升级到比较旧的软件包。一般当新安装的软件包出现兼容问题等的时候会用到此参数,将软件包升级到比较老的版本。

  再次使用yum的时候应该来说就好了,但是令人头疼的是又再次报了一开始的错

  当我再一次查看报错的时候,发现了一个问题
DSC0002.png

  我想是不是因为这个文件的问题呢?
  于是我进入/lib64此目录,然后将尝试将librt.so.1文件改名
mv librt.so.1  librt.so.1.bak  结果再次运行出现如下的错
DSC0003.png

  提示找不到这个文件,我赶紧将这个文件还原,但是这次无论如何都不能还原
DSC0004.png

  我想尝试重启,然而也不能执行这一操作
DSC0005.png

  我查看了这个文件的属性,发现他是一个librt-2.12.so的连接文件。我就想,既然是连接文件,那么可不可以再做一个软连接呢?
DSC0006.png

  但是很快我就发现什么操作都不能做了。
DSC0007.png

DSC0008.png

  那么怎么办呢?就在我为难的时候,我朋友将另一台同环境的服务上的librt.so.1这个文件拷贝到了此服务上面,然后再次运行yum,结果这次yum运行正常
DSC0009.png

  总结:我想应该是librt.so.1这个文件出错导致的。
  后来我查了一下这个文件,原来librt.so是glibc中对real-time部分的支持库。
  linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名。如果感兴趣的可以自己再去查看更多的关于这个文件的知识。
  其实此文档中已经包含了如何正确的升级Python,可以参考博客
  centos6.4升级Python过程总结:
  http://11863547.blog.51cto.com/11853547/1906283

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450792-1-1.html 上篇帖子: centos7离线安装ansible 下篇帖子: centos6.4升级Python过程总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表