linux执行命令缺少共享库解决方法和ldd命令说明
[root@xiaogaokui ~]# which ldd/usr/bin/ldd[root@xiaogaokui ~]# file /usr/bin/ldd/usr/bin/ldd: Bourne-Again shell script, ASCII text executableldd是一个shell脚本,ldd可以列出一个程序所需要得动态链接库(so)
[root@xiaogaokui ~]# ldd /usr/bin/ls linux-vdso.so.1 => (0x00007ffd84fe7000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f46407cf000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f46405ca000) libacl.so.1 => /lib64/libacl.so.1 (0x00007f46403c0000) libc.so.6 => /lib64/libc.so.6 (0x00007f463fffd000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f463fd9b000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f463fb96000) /lib64/ld-linux-x86-64.so.2 (0x0000561fa1b64000) libattr.so.1 => /lib64/libattr.so.1 (0x00007f463f991000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f463f775000)注意:在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。默认情况下,/etc/ld.so.conf 文件中包含有默认的共享库搜索路径。[root@xiaogaokui ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf# 如果需要,将所需共享库绝对路径卸载此处# 或者在/etc/ld.so.conf.d/下新增conf文件引用共享库绝对路径新增系统共享库需要运行ldconfig,用来属性系统的共享库缓存为了减少共享库系统的库搜索时间,共享库系统维护了一个共享库 so 名称的缓存文件/etc/ld.so.cache。因此,在安装新的共享库之后,一定要运行 ldconfig 刷新该缓存。LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。
移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$LD_BIBRARY_PATH运行命令常见报错:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory1.通过ldd脚本检测命令所需动态链接库# ldd 命令libappindicator3.so.1 => not found2.在系统上安装共享库或者find3.建立映射关系# ln -s /xx/libc.so.6 /usr/bin/libc.so.64.source变量LD_LIBRARY_PATH[oracle@xiaogaokui ~]$ ldd --help
Usage: ldd [OPTION]... FILE... --help print this help and exit --version print version information and exit -d, --data-relocs process data relocations -r, --function-relocs process data and function relocations -u, --unused print unused direct dependencies -v, --verbose print all informationFor bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.