一、ldd命令简介
众所周知,当我们在服务器上搭建某些服务时,通常该服务会依赖各种各样的共享库,经常头疼的是,某些服务启动不起来,就是因为缺少各种各样的依赖库。那么如何解决缺少依赖库而导致问题无法解决呢,还有就是如何查询某些服务所依赖的共享库呢?接下来介绍
ldd命令用于打印程序或者库文件所依赖的共享库列表
ldd(list, dynamic, dependencies),即为:列出动态库依赖关系。
二、ldd命令原理
首先ldd不是一个可执行程序,而只是一个shell脚本。
ldd能够显示可执行模块的dependency,其原理:通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE等。
注意:当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的dependency,而程序并不真正执行。
测试一下,在终端中导入该环境变量。