ldconfig ldd 以及/etc/ld.so.conf

本文讲述了ldconfig命令的作用,如何解决`libssl.so.1.1: cannot open shared object file: No such file or directory`错误,以及如何通过编辑ld.so.conf并手动运行ldconfig来查找和添加新动态库路径。

ldconfig命令的作用主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。

缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

如果发现某一程序无法启动,缺少依赖可以做如下重新链接操作

[root@61 bin]# ./OlapServer.out
./OlapServer.out: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
[root@61 bin]# ldd OlapServer.out
	linux-vdso.so.1 =>  (0x00007ffdcf915000)
	libssl.so.1.1 => not found
	libz.so.1 => /lib64/libz.so.1 (0x00007fa3bf539000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa3bf31d000)
	libgomp.so.1 => /lib64/libgomp.so.1 (0x00007fa3bf0f7000)
	libbson-1.0.so.0 => not found
	libmongoc-1.0.so.0 => not found
	libcrypto.so.1.1 => not found
	libm.so.6 => /lib64/libm.so.6 (0x00007fa3bedf5000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fa3bebdf000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fa3be811000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fa3bf74f000)
[root@61 bin]# pwd
/opt/FOne/AppServer/bin
[root@61 bin]# vi /etc/ld.so.conf

插入/opt/FOne/AppServer/bin

[root@61 bin]# ldconfig
ldconfig: /opt/FOne/AppServer/bin/libupb.so.9 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libtcmalloc.so.4 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libmongoc-1.0.so.0 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc_unsecure.so.9 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc_cronet.so.9 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpcpp_channelz.so.1 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc.so.9 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc++_unsecure.so.1 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc++_reflection.so.1 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc++_error_details.so.1 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc++_alts.so.1 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgrpc++.so.1 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libgpr.so.9 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libglog.so.0 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libbson-1.0.so.0 is not a symbolic link

ldconfig: /opt/FOne/AppServer/bin/libaddress_sorting.so.9 is not a symbolic link

[root@61 bin]# 

root@ubuntu:/zlab_16t2/changqingteng# echo "/usr/local/lib" | tee /etc/ld.so.conf.d/freesasa.conf /usr/local/lib root@ubuntu:/zlab_16t2/changqingteng# ldconfig -v | grep freesasa /sbin/ldconfig.real: Can't stat /usr/local/lib/i386-linux-gnu: No such file or directory /sbin/ldconfig.real: Path `/usr/lib/i386-linux-gnu' given more than once (from /etc/ld.so.conf.d/i386-linux-gnu.conf:4 and /etc/ld.so.conf.d/i386-linux-gnu.conf:3) /sbin/ldconfig.real: Can't stat /usr/local/lib/i686-linux-gnu: No such file or directory /sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory /sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory /sbin/ldconfig.real: Path `/usr/local/lib' given more than once (from /etc/ld.so.conf.d/libc.conf:2 and /etc/ld.so.conf.d/freesasa.conf:1) /sbin/ldconfig.real: Can't stat /usr/local/lib/x86_64-linux-gnu: No such file or directory /sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once (from /etc/ld.so.conf.d/x86_64-linux-gnu.conf:4 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3) /sbin/ldconfig.real: Path `/usr/lib32' given more than once (from /etc/ld.so.conf.d/zz_i386-biarch-compat.conf:3 and /etc/ld.so.conf.d/zz_i386-biarch-compat.conf:2) /sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once (from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3) /sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once (from <builtin>:0 and /etc/ld.so.conf.d/x86_64-linux-gnu.conf:3) /sbin/ldconfig.real: Path `/usr/lib' given more than once (from <builtin>:0 and <builtin>:0) /sbin/ldconfig.real: /lib/i386-linux-gnu/ld-linux.so.2 is the dynamic linker, ignoring /usr/local/lib: (from /etc/ld.so.conf.d/freesasa.conf:1) /sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 is the dynamic linker, ignoring /sbin/ldconfig.real: /lib32/ld-linux.so.2 is the dynamic linker, ignoring 请分析错误原因,并给出详细解决步骤
07-27
[root@VM-24-11-opencloudos nginx-1.24.0]# export LUAJIT_LIB=/usr/local/lib [root@VM-24-11-opencloudos nginx-1.24.0]# ls -l ${LUAJIT_LIB}/libluajit-5.1.so* lrwxrwxrwx 1 root root 33 Jun 18 11:12 /usr/local/lib/libluajit-5.1.so -> /usr/local/lib/libluajit-5.1.so.2 lrwxrwxrwx 1 root root 31 Jun 17 16:40 /usr/local/lib/libluajit-5.1.so.2 -> libluajit-5.1.so.2.1.1748495995 -rwxr-xr-x 1 root root 3135760 Jun 17 14:25 /usr/local/lib/libluajit-5.1.so.2.1.0 -rwxr-xr-x 1 root root 3148872 Jun 17 16:40 /usr/local/lib/libluajit-5.1.so.2.1.1748495995 [root@VM-24-11-opencloudos nginx-1.24.0]# export LUAJIT_INC=/usr/local/include/luajit-2.1 [root@VM-24-11-opencloudos nginx-1.24.0]# ls -l ${LUAJIT_INC}/luajit.h -rw-r--r-- 1 root root 3011 Jun 17 16:40 /usr/local/include/luajit-2.1/luajit.h [root@VM-24-11-opencloudos nginx-1.24.0]# ls ${LUAJIT_LIB}/libluajit-5.1.so* /usr/local/lib/libluajit-5.1.so /usr/local/lib/libluajit-5.1.so.2.1.0 /usr/local/lib/libluajit-5.1.so.2 /usr/local/lib/libluajit-5.1.so.2.1.1748495995 [root@VM-24-11-opencloudos nginx-1.24.0]# sudo ln -sf /usr/local/lib/libluajit-5.1.so.2 /usr/lib64/libluaj it-5.1.so.2 [root@VM-24-11-opencloudos nginx-1.24.0]# sudo ln -sf /usr/local/lib/libluajit-5.1.so.2 /usr/local/lib64/libluajit-5.1.so.2 [root@VM-24-11-opencloudos nginx-1.24.0]# echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/luajit.conf /usr/local/lib [root@VM-24-11-opencloudos nginx-1.24.0]# echo "/usr/local/lib64" | sudo tee -a /etc/ld.so.conf.d/luajit.conf /usr/local/lib64 [root@VM-24-11-opencloudos nginx-1.24.0]# sudo ldconfig -v | grep luajit # 应显示库路径 ldconfig: Path `/usr/local/lib' given more than once (from /etc/ld.so.conf:2 and /etc/ld.so.conf.d/luajit.conf:1) ldconfig: Can't stat /libx32: No such file or directory ldconfig: Path `/usr/lib' given more than once (from <builtin>:0 and <builtin>:0) ldconfig: Path `/usr/lib64' given more than once (from <builtin>:0 and <builtin>:0) ldconfig: Can't stat /usr/libx32: No such file or directory /usr/local/lib: (from /etc/ld.so.conf.d/luajit.conf:1) libluajit-5.1.so.2 -> libluajit-5.1.so.2.1.1748495995 /usr/local/lib64: (from /etc/ld.so.conf.d/luajit.conf:2)
06-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值