启动服务时出现 error while loading shared libraries: aa.so.xx: cannot open shared object file: No such file or directory
意思是启动的服务找不到相应的包
可以用以下的命令查找这个包具体路径
>whereis aa.so.xx
aa.so.xx: /usr/share/lib/aa.so.xx
查看启动此服务关联了哪些包,如以下是我的memcached需要的包
> ldd /usr/local/bin/memcached
linux-gate.so.1 => (0xb7fa4000)
libevent-1.4.so.2 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x0086e000)
libc.so.6 => /lib/libc.so.6 (0x006f7000)
/lib/ld-linux.so.2 (0x006d9000)
查看memcached默认的包路径
> LD_DEBUG=libs ./memcached -v
找到默认路径 /usr/lib64/
我们可以查找一下/usr/lib64/下确实没有libevent-1.4.so.2
把libevent-1.4.so.2关联到/usr/lib64/下
>ln -s /usr/share/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
再次查看memcached所关联的包,我们发现libevent-1.4.so.2已经找到
>ldd /usr/local/bin/memcached
linux-gate.so.1 => (0xb7ffd000)
libevent-1.4.so.2 => /usr/lib64/libevent-1.4.so.2 (0xb7fdc000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0086e000)
libc.so.6 => /lib/libc.so.6 (0x006f7000)
libnsl.so.1 => /lib/libnsl.so.1 (0x009f8000)
librt.so.1 => /lib/librt.so.1 (0x00887000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00b29000)
/lib/ld-linux.so.2 (0x006d9000)
意思是启动的服务找不到相应的包
可以用以下的命令查找这个包具体路径
>whereis aa.so.xx
aa.so.xx: /usr/share/lib/aa.so.xx
查看启动此服务关联了哪些包,如以下是我的memcached需要的包
> ldd /usr/local/bin/memcached
linux-gate.so.1 => (0xb7fa4000)
libevent-1.4.so.2 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x0086e000)
libc.so.6 => /lib/libc.so.6 (0x006f7000)
/lib/ld-linux.so.2 (0x006d9000)
查看memcached默认的包路径
> LD_DEBUG=libs ./memcached -v
找到默认路径 /usr/lib64/
我们可以查找一下/usr/lib64/下确实没有libevent-1.4.so.2
把libevent-1.4.so.2关联到/usr/lib64/下
>ln -s /usr/share/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
再次查看memcached所关联的包,我们发现libevent-1.4.so.2已经找到
>ldd /usr/local/bin/memcached
linux-gate.so.1 => (0xb7ffd000)
libevent-1.4.so.2 => /usr/lib64/libevent-1.4.so.2 (0xb7fdc000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0086e000)
libc.so.6 => /lib/libc.so.6 (0x006f7000)
libnsl.so.1 => /lib/libnsl.so.1 (0x009f8000)
librt.so.1 => /lib/librt.so.1 (0x00887000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00b29000)
/lib/ld-linux.so.2 (0x006d9000)