Linux下安装memcached遇到的一系列问题

在Linux CentOS上安装memcached时遇到了依赖库libevent编译错误,由于误删Python2导致yum无法使用。解决方法包括:安装python2.7、2.4和2.6版本,但yum始终无法正常工作。最终通过卸载并重新安装python和yum解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在安装Memcached之前,必须先安装依赖库libevent,我从libevent官网下载源码包然后编译出现下面这个错误

root@VM_24_101_centos libevent-2.1.8-stable]# make 

  GEN      test/rpcgen-attempted
which: no python2 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin)
  File "./test/../event_rpcgen.py", line 39
    print s
          ^
SyntaxError: Missing parentheses in call to 'print'
event_rpcgen.py failed, ./test/regress.gen.\[ch\] will be reused.

  GEN      include/event2/event-config.h


上面提示我的没有python2

这是上面问题呢? 我记的我安装了python3,然后就把Centos原来自己带的Python就卸载了,结果出事了,问了一下我同学,同学说,卸载了你的yum应该也不能用了,我使用了一下yum命令,发现了如下报错

File "<stdin>", line 1, in <module> ImportError: No module named yum

百度了一下,发现错误原因是:yum与所依赖的python版本不相符。

2.我的解决方法 (yum与python版本不相符)

2.1 我下载了python2.7,编译安装成功,修改/usr/bin和/usr/local/bin下的python路径,然后yum还是不能用

2.2 我当时想是不是python版本是不是太高了,我又下载了python2.4版本,编译安装运行,然后修改/usr/bin和/usr/local/bin下的python路径,然后yum还是不能用

2.3 我whereis python,发现原来的python版本是2.6的,我就又去下载了python2.6版本编译运行,发现还是不行,这是头已经大了,安装个memcached这么麻烦

然后百度了一下,找到一篇博客遇到同样的问题,他把python和yum全部卸载掉了重新安装

参考文章地址:http://smilepad.blog.51cto.com/6094369/1333478


3.安装参考文章地址中的,卸载掉python和yum

1、删除现有Python
[root@test ~]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps 

##强制删除已安装程序及其关联

[root@test ~]# whereis python |xargs rm -frv ##删除所有残余文件 

##xargs,允许你对输出执行其他某些命令

[root@test ~]# whereis python ##验证删除,返回无结果

2、删除现有的yum
[root@test ~]# rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
[root@test ~]# whereis yum |xargs rm -frv


然后需要重新安装python和yum,因为yum不能用,我们只能通过rpm安装,


由于参考文章中的下载rpm包的地址不能使用   我说一下我的解决方法


3.1解压linux镜像,里面有一个Packages目录里面有所有我们需要的rpm包

然后上传关于python和yum的rpm包,参考文章下载的包如下:

python-2.6.6-36.el6.x86_64.rpm

python-devel-2.6.6-36.el6.x86_64.rpm

python-libs-2.6.6-36.el6.x86_64.rpm

python-pycurl-7.19.0-8.el6.x86_64.rpm

python-setuptools-0.6.10-3.el6.noarch.rpm

python-urlgrabber-3.9.1-8.el6.noarch.rpm  

python-iniparse-0.3.1-2.1.el6.noarch.rpm

rpm-python-4.8.0-32.el6.x86_64.rpm

yum-3.2.29-40.el6.centos.noarch.rpm

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

yum-utils-1.1.30-14.el6.noarch.rpm

yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm    
 
yum-plugin-protectbase-1.1.30-14.el6.noarch.rpm

yum-plugin-aliases-1.1.30-14.el6.noarch.rpm

yum-plugin-downloadonly-1.1.30-14.el6.noarch.rpm


我把镜像源中python*和yum*的所有包都上传到我的服务器上面了 


也就是所有python开头和yum开头的包  都上传上去了,


还有一个  rpm-python-4.8.0-27.el6.x86_64.rpm 上传上去了


在使用

[root@test ~]# rpm -Uvh --replacepkgs python*.rpm

安装的时候

出现包依赖,应该有100多个报错,我下载了下面这些依赖包上传了上去

      deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm


      libxml2-2.7.6-4.el6_2.4.i686.rpm


      libxml2-python-2.7.6-4.el6_2.4.x86_64.rpm

在安装libxml2-python包的时候,一直报错,而且同时还有那么多依赖包,安装不完

所以我就使用了下面这个命令

rpm -Uvh --replacepkgs python*.rpm --nodeps  不依赖安装


同时不依赖安装了yum


rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm --nodeps

然后我试了一下 yum 就可以使用了

4. 接着安装libevent,make 的时候没有报错,安装的时候也没有报错

    
安装过以后,我使用 rpm -qa | grep libevent  没有找到


使用 ls -al /usr/lib | grep libevent 也没有找到


我就使用yum -y install libevent 又安装了一下libevent 这下rpm -qa |

 
grep libevent 查找的时候可以找到了


ls -al /usr/lib | grep libevent  还是没有找到 ,继续往下面安装memcached


5.安装memcached make 的时候出现报错

 
make *** No targets specified and no makefile found. Stop 


急着百度了一下,后来又仔细看了一下报错,发现需要指定libevent的安装目录


./configure --prefix=/usr/local/memcached/ 

--with-libevent=/usr/local/libevent/


然后就编译安装成功了 make && make install 成功了


6.启动memcached 出现


can't run as root without the -u switch


需要加上-u root 就可以了,


/usr/local/memcached/bin/memcached -p 11211 -m 64m -d -u root


7.最后memcached终于安装好了,一不小心,整了一天


总结:Linux中不知道有些老版本的软件有没有用,不要乱删,不然你会付出代价的!


不过最后还是整好了,加油!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值