|
今天安装memcached时候启动报错,安装的版本为 memcached-1.4.5,安装完成后启动报错如下:/usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
于是想到starce命令可以追踪执行的过程。于是根据starce追踪过程观察来接解决问题。标红的显然没有找到这里面得库文件,且没有这些目录。
#strace /usr/local/bin/memcached -d -m 50 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
execve("/usr/local/bin/memcached", ["/usr/local/bin/memcached", "-d", "-m", "50", "-u", "root", "-l", "192.168.0.200", "-p", "12000", "-c", "256", "-P", "/tmp/memcached.pid"], [/* 25 vars */]) = 0
brk(0) = 0x10a63000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b8403301000
uname({sys="Linux", node="master2", ...}) = 0
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=81481, ...}) = 0
mmap(NULL, 81481, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b8403302000
close(3) = 0
open("/lib64/tls/x86_64/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/lib64/tls/x86_64", 0x7ffff2b66b30) = -1 ENOENT (No such file or directory)
open("/lib64/tls/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/lib64/tls", 0x7ffff2b66b30) = -1 ENOENT (No such file or directory)
open("/lib64/x86_64/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/lib64/x86_64", 0x7ffff2b66b30) = -1 ENOENT (No such file or directory)
open("/lib64/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/lib64", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib64/tls/x86_64/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/tls/x86_64", 0x7ffff2b66b30) = -1 ENOENT (No such file or directory)
open("/usr/lib64/tls/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/tls", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib64/x86_64/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/x86_64", 0x7ffff2b66b30) = -1 ENOENT (No such file or directory)
open("/usr/lib64/libevent-1.4.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=45056, ...}) = 0
writev(2, [{"/usr/local/bin/memcached", 24}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libevent-1.4.so.2", 17}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10/usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
) = 141
exit_group(127) = ?
于是创建这些目录并拷贝libevent库文件到memcached所要找的这些位置,问题解决。
mkidr -p /lib64/tls/x86_64/
mkdir -p /lib64/x86_64/
mkdir -p /usr/lib64/tls/x86_64/
mkdir -p /usr/lib64/x86_64/
cp -r /usr/local/lib64/libevent-1.4.so.2 /lib64/tls/x86_64/
cp -r /usr/local/lib64/libevent-1.4.so.2 /lib64/tls/
cp -r /usr/local/lib64/libevent-1.4.so.2 /lib64/x86_64/
cp -r /usr/local/lib64/libevent-1.4.so.2 /lib64/
cp -r /usr/local/lib64/libevent-1.4.so.2 /usr/lib64/tls/x86_64/
cp -r /usr/local/lib64/libevent-1.4.so.2 /usr/lib64/tls/
cp -r /usr/local/lib64/libevent-1.4.so.2 /usr/lib64/tls/
cp -r /usr/local/lib64/libevent-1.4.so.2 /usr/lib64/x86_64/
cp -r /usr/local/lib64/libevent-1.4.so.2 /usr/lib64/
|
|