centos6.4下yum报错实例

说明:以下所有操作均是由超级管理员完成

我一个朋友遇到这个问题,就是利用yum安装的时候报错。如图:

当时他问我的时候,我一开始以为是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
#创建软连接
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /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路径

然后发现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的时候应该来说就好了,但是令人头疼的是又再次报了一开始的错

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

我想是不是因为这个文件的问题呢?

于是我进入/lib64此目录,然后将尝试将librt.so.1文件改名

mv librt.so.1  librt.so.1.bak

结果再次运行出现如下的错

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

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

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

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

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

总结:我想应该是librt.so.1这个文件出错导致的。

后来我查了一下这个文件,原来librt.so是glibc中对real-time部分的支持库。

linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名。如果感兴趣的可以自己再去查看更多的关于这个文件的知识。

其实此文档中已经包含了如何正确的升级Python,可以参考博客

centos6.4升级Python过程总结:

http://11863547.blog.51cto.com/11853547/1906283

时间: 2024-11-08 23:51:02

centos6.4下yum报错实例的相关文章

CentOS6.5运行yum报错:No module named yum

公司测试机环境不知道给我卸了什么包,导致yum运行报错状况: 报错情况: There was a problem importing one of the Python modulesrequired to run yum. The error leading to this problem was: No module named sqlite Please install a package which provides this module, orverify that the modu

centos6.x下yum安装heartbeat

[[email protected] ~]# uname -n #<===配置heartbeat时,节点的主机名必须和 uname -n 命令的结果要一致 heartbeat [[email protected] ~]# crontab -l #<===时间同步很重要 #ntpdate by root */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null [[email protected] ~]# release=`

[Q&A]yum报错‘database disk image is malformed’

错误描述: 在yum安装软件的过程中使用 Ctrl + c 组合键取消安装,之后再使用yum时报错: Error: database disk image is malformed 例如: [[email protected] etc]$ yum repolist Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extr

Archlinux下virtualbox报错&#39;/sbin/rcvboxdrv setup&#39;

因为刚刚换成archlinux系统,安装virtualbox的时候报错了.如下图: 可是怎么解决呢?我看了很多资料大多数是ubuntu的,没有archlinux的. 但是原理都差不多我借着也就研究出来了,第一步: 我查看了我当前系统安装与vbox相关的(服务)命令 大致我也看不出来什么,看到virtualbox的报错.我查了下资料,第二步: 所以这命令是存在的用不了,报错是说内核之类的.第三步: 看了ubuntu的用户写的文章,大致就是说要更新系统的heard文件,这样virtualbox才可以

yum报错的问题

可能是因为重复安装了curl .7.45 ,导致yum报错: /usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback 网上看到是动态库冲突,按网上说的如下操作: [[email protected] ~]# ldd /usr/lib64/python2.6/site-packages/pycurl.so linux-vdso.so.1 => (0x00007fff677

rhel yum报错

用yum报错 http://mirrors.aliyun.com/centos/%24releasever/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout: <urlopen error timed out> Trying other mirror. http://mirrors.aliyuncs.com/centos/%24releasever/addons/x86_64/repodata/repomd.xml: [Errno 14

一看便知linux下mysql报错ERROR 1044: Access denied for user: &#39;@localhost&#39; to database &#39;mysql&#39;

错误信息:ERROR 1044: Access denied for user: '@localhost' to database 'mysql' linux下解决方案: mysql> use mysql ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'mysql' mysql> exit Bye [[email protected] ~]# service mysqld stop如果该命令不

Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法

SSH项目 在网络复杂的情况(具体规律未知)下,Tomcat启动时,报如下错误: [ERROR] 2014-08-12 14:52:58,484 [org.apache.struts2.dispatcher.Dispatcher :27] - Dispatcher initialization failedUnable to load configuration. - Class: java.net.AbstractPlainSocketImplFile: AbstractPlainSocket

搭建仓库,yum报错无签署问题

在centos系统中使用yum报错 yum install xxx.rpm warning: Package xxx.rpm is not signed google一下,解决方法都是 1.修改yum.conf 路径:/etc/yum.conf 找到 gpgcheck=1 将其修改为0:gpgcheck=0 2.修改/etc/yum.repos.d /utterramblings.repo 找到 gpgcheck=1 将其修改为0:gpgcheck=0 如果不行 只要在在后面加上--nogpgc