Solaris下安装memcached

在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的各种使用,需要参考其他文章。

 

你可能感兴趣的:(memcached,Solaris,gcc)