解决 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 event和writev_list找不到SSIZE_MAX,我们第一个想到是不是我们Libevent
没安装,我们查看一下我们Libevent 有没有安装,如图所示:

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

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

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

三.解决问题一

根据分析,我们Libevent有正确安装,并且安装在/opt下,我们刚才分析到没引用到event和writev_list找不到SSIZE_MAX,Libevent我们安装在/opt目录下,我们想到Libevent的event在安装目录下的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这时会出现帮助,这样就能成功执行,如图所示:

时间: 2024-11-05 22:06:04

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

安装源码包inotify启动失败 error while loading shared libraries: libinotifytools.so.0: cannot open shared object fil

今天安装源码包inotify 一切安装妥当之后启动失败,报如下错误: 第一感觉是找不到这个库,此时有两种可能 1,操作系统上没有安装该库 2,操作系统找不到该库 首先在/usr路径下查找该包的名称,如下图 ps:为什么要在/usr下找呢,因为库文件一般都安装在该目录下. 结果只在源码包的安装路径下找到了该库,证明以源码包形式安装该软件的时候该库已经被安装在操作系统中了. 这就验证了上边的第2项,操作系统找不到该库的路径. 此时我们应该想怎么让操作系统找到该库 在这之前呢我们要先知道一点,程序里面

NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法

nclncl: error while loading shared libraries: libg2c.so.0: cannot open shared object file: No such file or directory 先看看运行机器上面有没有这个动态链接库,有的话再看看环境变量对不对,libg2c.so.0 所在路径是不是在你的LD_LIBRARY_PATH里面了,可以到/etc/ld.so.conf文件里面去更改,然后ldconfig 如果有的话,按2楼操作,一般情况下是动态文

error while loading shared libraries: libpcre.so.0的解决办法(转)

error while loading shared libraries: libpcre.so.0的解决办法 昨晚刚买了台linux云服务器,今天配置apache2时,因没有备份libpcre.so.0文件便执行命令“rpm -e pcre –nodeps”,导致丢失libpcre.so.0文件.结果可想而知,新版的pcre再也安装不上了,apache2也无法再编译了.只要一编译,就提示错误: error while loading shared libraries: libpcre.so.0

error while loading shared libraries: libpcre.so.0的解决办法

因没有备份libpcre.so.0文件便执行命令“rpm -e pcre –nodeps”,导致丢失libpcre.so.0文件.结果可想而知,新版的pcre再也安装不上了,apache2也无法再编译了.只要一编译,就提示错误: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory 经过半天的折腾,从别的服务器上拷贝来一份libpc

运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory

运行编译后的程序报错  error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory -------------------------------------------------------------------------------------------------------------------------------------

Nginx启动错误:error while loading shared libraries: libpcre.so.0

今天测试的时候,启动一个其他机器预编译好的nginx到目标测试机器(OEL 7.4)启动的时候,报了下列错误: /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory 经查,OEL 7.4版本下/lib64下没有libpcre.so.0这个共享库,故创建一个到libpcre.s

Linux运行错误:error while loading shared libraries: xxx.so.0:cannot open shared object file: No such fil

链接时可以通过-L和-l来指定自己的库,因此链接可以通过,但是运行时,系统仍无法找到指定的库,需要简单配置一下. 解决方法1: 可以直接在将自己的库所在路径添加到/etc/ld.so.conf文件中.但一般这个文件中的内容都是一句"include /etc/ld.so.conf.d/*.conf",因此最好在/etc/ld.so.conf.d/目录下新建一个文件 , 如"xxx.conf",然后将自己的库所在路径添加到这个conf文件中. 修改完文件后,以root身

error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误.google了一下,是由于找不到lib这个文件. 解决办法: 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared librari

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 http://blog.csdn.net/sahusoft/article/details/7388617 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared obje