在solaris下安装memcached,碰到些问题,具体步骤记录下来,供以后使用
一.先做点准备
查看solaris内核
使用 uname -a 命令即可
SunOS abc 5.8 Generic_108528-15 sun4u sparc SUNW,Ultra-250
以下是各项解释:
5.8 ==>; the operating system release level 版本号
Generic_108528-15 ==>; the operating system version 补丁号
sun4u ==>; the machine hardware name (class).
sparc ==>; the current host's ISA or processor type
SUNW,Ultra-250 ==>; the name of the hardware implementation (plat-form).
二.solaris下安装memcached,需要先编译libevent,而编译libevent,需要配置gcc和make
其安装及配置步骤如下:
1.上传libevent-1.4.12-stable.tar.gz和memcached-1.4.2.tar.gz
2.解压
gzip -d libevent-1.4.12-stable.tar.gz
tar xvf libevent-1.4.12-stable.tar
gzip -d memcached-1.4.2.tar.gz
tar xvf memcached-1.4.2.tar
3.切换到root用户下,进入libevent-1.4.12-stable目录,设置PATH。
1)显示当前PATH
echo $PATH
2)设置PATH
查找gcc路径
find / -name gcc
Solaris10以后,gcc缺省安装在/usr/sfw/bin目录下;make在/usr/ccs/bin下
设置路径
# export PATH=$PATH:/usr/sfw/bin:/usr/ccs/bin
4.进入libevent-1.4.12-stable目录,安装libevent
# cd libevent-1.4.12-stable
# ./configure --prefix= /export/home/username/libeventinstall (准备安装到的地址)
# make
# make install
检查是否安装成功:
进入
# cd /export/home/neusoft/shidm/logs/install/lib
如果有:
libevent-1.4.so.2
libevent-1.4.so.2.0.0
libevent.a
libevent.la
libevent.so
这几个文件存在,说明安装成功。
5.安装memcached (configure 用法请参照其他文章)
# cd memcached-1.4.2
# ./configure --with-libevent=/export/home/username/libeventinstall
--prefix=/export/home/username/memcachedinstall
# make
# make install
6.安装检查
进入安装目录/export/home/username/memcached-1.2.5
#cd /export/home/neusoft/shidm/username/memcachedinstall/bin
memcached -h
有可能会出现:
memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
7.解决类似问题的步骤
1) 首先 find / -name libevent-1.4.so.2 找到缺少的链接文件到底在那儿。
2.)LD_DEBUG=libs ./memcached -v
18118:
18118: 硬件能力 - 0x1dc6f [ CX16 MON SSE3 SSE2 SSE FXSR MMX CMOV SEP CX8 TSC FPU ]
18118:
18118:
18118: 配置文件=/var/ld/ld.config: 无法处理文件
18118:
18118:
18118: 找到 object=libumem.so.1;寻找
18118: 查找路径=/usr/sfw/lib (文件memcached中的RPATH)
18118: 试试 path=/usr/sfw/lib/libumem.so.1
18118: 查找路径=/lib (缺省的)
18118: 查找路径=/usr/lib (缺省的)
18118: 试试 path=/lib/libumem.so.1
18118:
18118: 找到 object=libnsl.so.1;寻找
18118: 查找路径=/usr/sfw/lib (文件memcached中的RPATH)
18118: 试试 path=/usr/sfw/lib/libnsl.so.1
18118: 查找路径=/lib (缺省的)
18118: 查找路径=/usr/lib (缺省的)
18118: 试试 path=/lib/libnsl.so.1
18118:
18118: 找到 object=libsocket.so.1;寻找
18118: 查找路径=/usr/sfw/lib (文件memcached中的RPATH)
18118: 试试 path=/usr/sfw/lib/libsocket.so.1
18118: 查找路径=/lib (缺省的)
18118: 查找路径=/usr/lib (缺省的)
18118: 试试 path=/lib/libsocket.so.1
18118:
18118: 找到 object=libevent-1.4.so.2;寻找
18118: 查找路径=/usr/sfw/lib (文件memcached中的RPATH)
18118: 试试 path=/usr/sfw/lib/libevent-1.4.so.2
18118: 查找路径=/lib (缺省的)
18118: 查找路径=/usr/lib (缺省的)
18118: 试试 path=/lib/libevent-1.4.so.2
18118: 试试 path=/usr/lib/libevent-1.4.so.2
ld.so.1: memcached: 致命的: libevent-1.4.so.2: 打开失败: 无此文件或目录
18118:
18118:
18118: ld.so.1: memcached: 致命的: libevent-1.4.so.2: 打开失败: 无此文件或目录
3) 从Debug信息中就知道程序去哪里找链接库了。我这边程序去 trying file=/usr/lib/libevent-1.4.so.2 而我的链接库的实际存储位置是 /export/home/username/memcachedinstall /lib/libevent-1.4.so.2
4) 做一个软连接 ln -s /export/home/username/memcachedinstall/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
8.检查是否成功
memcached -h
有正常显示,表示成功。
关于memcached的各种使用,需要参考其他文章。