2009年5月10日星期日

CentOS 上安装Memcached笔记

环境:CentOS 5,X64
软件包:libevent-1.4.10(http://www.monkey.org/~provos/libevent/)
、memcached-1.2.8(http://www.danga.com/memcached/dist/)
说明:安装memcached前需要先安装libevent

开始:
安装libevent
CFLAGS=-m64 LDFLAGS=-m64 ./configure
make
sudo make install

安装memcached
CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=/usr/local/memcached
make
sudo make install

启动memcached
/usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u root
遭遇:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

通过LD_DEBUG=libs /usr/local/memcached/bin/memcached -h
看到类似输出
---------------------
30596: find library=libevent-1.4.so.2 [0]; searching
30596: search cache=/etc/ld.so.cache
30596: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64
/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64
(system search path)
30596: trying file=/lib64/tls/x86_64/libevent-1.4.so.2
30596: trying file=/lib64/tls/libevent-1.4.so.2
30596: trying file=/lib64/x86_64/libevent-1.4.so.2
30596: trying file=/lib64/libevent-1.4.so.2
30596: trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2
30596: trying file=/usr/lib64/tls/libevent-1.4.so.2
30596: trying file=/usr/lib64/x86_64/libevent-1.4.so.2
30596: trying file=/usr/lib64/libevent-1.4.so.2

-------------------------------
可以看到是在加载/usr/lib64/libevent-1.4.so.2文件时出现了问题,系统中确实是没有该文件的,查找后发现libevent-1.4.so.2存在于/usr/local/lib目录
然后做个软链接
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2

然后再来:
/usr/local/memcached/bin/memcached -d -m 1024 -p 11211 -u root

ps -A | grep memcached
可以看到
12389 ? 00:00:00 memcached
表明OK

那么,如何让它在系统启动的时候自启动呢:
达人告诉我:
在/etc/rc.d/rc.local中加入一行,上面命令
try it

没有评论: