解决 Magent 安装编译时出现错误和magent: error while loading shared libraries: libevent-2.0.so.5

一.背景

   在 Linux上安装Magent代理服务器软件时,在后面的文章会介绍介绍了Magent解决Memcached服务的负载均衡和容错上。我这边先介绍安装Magent过程中出现的问题。

二.问题

   安装Magent过程中出现问题

  #tar zxvf magent-0.5.tar.gz

  #/sbin/ldconfig  

  #sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile 

  #make 

问题一:我在编译make Magent出现问题,如图所示:


分析:出现Libevent eventwritev_list找不到SSIZE_MAX,我们第一个想到是不是我们Libevent 没安装,我们查看一下我们Libevent 有没有安装,如图所示:


有正确安装,那我们想到是不是没正确引用到Libevent ?

 问题二:使用Magent命令时出现问题,报找不到libevent  libmagent: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory  如图所示:


 有正常安装好,是不是没引用到Libevent  lib


三. 解决问题一

 根据分析,我们Libevent有正确安装,并且安装在/opt下,我们刚才分析到没引用到eventwritev_list找不到SSIZE_MAXLibevent我们安装在/opt目录下,我们想到Libeventevent在安装目录下的include目录下,如图所示:

   

  

 Makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系,make时会读取Makefile文件,所以我们得先修改Makefile文件

第一步:修改Makefile 

   我们修改Makefile,把指向安装路径下的include目录,加入 INCLUDE=-I/opt/include,如图所示:

   

  这时我们把引用Libevent的正确的路径包含进来,然后我们在执行#make编译命令,结果还可是出现问题,问题是writev_list找不到SSIZE_MAX,如图所示:


分析:是不是我们没设置这个SSIZE_MAX变量。


第二步:修改ketama.h

  在这个文件定义SSIZE_MAX和设置值,如图所示:

  


 第三步:执行make

   我们执行#make,这时能正常编译,如图所示:

   


  这时能正确的编译


四.解决问题二

   我们编译过了,然后执行#magent命令时,出现/usr/bin/magent没这个文件或者目录,如图所示:

   


    我们把magent复制到/usr/bin/magent,执行#cp magent /usr/bin/magent

  这时我们执行#magent出现了magent: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory这时是没找到对应的lib

 

   我们把libevent-2.0.so.5放到/usr/lib文件下,就可以

   #ln -s /opt/lib/libevent-2.0.so.5 /usr/lib

 最后执行#magent这时会出现帮助,这样就能成功执行,如图所示:

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农_程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值