在linux上安装memcache后,执行启动命令时,会报错:error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory 提示找不到libevent-xxxx
原因一:缺少libevent-xxxx文件,没有安装libevent
原因二:程序按照默认路径没有找到该文件
解决:
首先 ldd /usr/local/bin/memcached 查看依赖
#ldd /usr/local/bin/memcached
linux-vdso.so.1 => (0x00007fff5fd43000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa58d41f000)
libevent-2.1.so.6 => not found #(没有找到该文件)
libc.so.6 => /lib64/libc.so.6 (0x00007fa58ce09000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa58d641000)
可以看到没有找到libevent-xxx文件
2. 使用 ‘find / -name libevent-2.1.so.6’ 查找该文件是否存在
可以看到该文件在 /usr/lib/ 目录下
3. 在memcache目录下利用 ‘LD_DEBUG=libs ./memcached -v’ 查看程序的默认查找路径
可以看到这里默认的查找路径有很多,在 /lib64/xxx 中,随便选择其中一个路径,利用软连接将libevent-xxx文件链接过去
ln -s /usr/lib/libevent-2.0.so.6 /usr/lib64/libevent-2.0.so.6