最近在安装完tengine,在启动tengine时报找不到libjemalloc.so.2的提示,即:

[root@localhost tengine]# sbin/nginx 
sbin/nginx: error while loading shared libraries: libjemalloc.so.2: 
cannot open shared object file: No such file or directory

首先找找系统中有没有这个文件:

sudo find / -name libjemalloc.so.2

得到如下结果

[root@localhost tengine]# sudo find / -name libjemalloc.so.2
/usr/local/lib/libjemalloc.so.2
/usr/jemalloc/lib/libjemalloc.so.2

上面的那个是系统本身安装的,下面的这个是我自己安装的。
既然有这个文件,我们就把他加入到/etc/ld.so.conf中,打开这个文件发现里面内容如下:

将.so文件路径的目录添加到/etc/ld.so.conf

[root@localhost ld.so.conf.d]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf

看看/etc/ld.so.conf.d目录下的文件:

[root@localhost ld.so.conf.d]# ls /etc/ld.so.conf.d
kernel-3.10.0-327.4.4.el7.x86_64.conf
dyninst-x86_64.conf                     
libiscsi-x86_64.conf
kernel-3.10.0-229.20.1.el7.x86_64.conf  
mariadb-x86_64.conf
kernel-3.10.0-229.el7.x86_64.conf       
kernel-3.10.0-327.10.1.el7.x86_64.conf  
vmware-tools-libraries.conf
kernel-3.10.0-327.3.1.el7.x86_64.conf

于是在该目录下创建一个other.conf文件。内容如下:

/usr/jemalloc/lib/

保存退出。
执行如下命令让文件生效:

sudo /sbin/ldconfig

再次启动tengine,应用正常启动。

可以用如下命令查看某个可执行文件所依赖的文件:

[root@localhost ld.so.conf.d]# ldd /usr/local/tengine/sbin/nginx
    linux-vdso.so.1 =>  (0x00007ffc9fd66000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff1c5f56000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007ff1c5d52000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ff1c5b1a000)
    libjemalloc.so.2 => /usr/jemalloc/lib/libjemalloc.so.2 (0x00007ff1c58cb000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ff1c550a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff1c6187000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007ff1c5306000)

参考:http://www.cnblogs.com/xudong-bupt/p/3698294.html

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐