ldconfig
是 Linux 系统中一个重要的动态链接库管理工具,主要用于维护共享库的缓存和链接。下面我将详细解析其功能和使用方法。
更新共享库缓存:
/etc/ld.so.conf
中指定的目录和 /lib
、/usr/lib
等标准目录/etc/ld.so.cache
文件,该文件包含所有找到的库及其路径维护符号链接:
libxyz.so.1
→ libxyz.so.1.2.3
)安装新库后更新系统:
sudo ldconfig
在安装新共享库后运行,使系统能够找到新安装的库
指定特定目录:
sudo ldconfig /path/to/libs
只处理指定目录中的库
显示当前缓存内容:
ldconfig -p
打印当前缓存中的所有库
选项 | 描述 |
---|---|
-v |
详细模式,显示处理过程 |
-n |
只处理命令行指定的目录,不处理标准目录 |
-N |
不重建缓存,只处理符号链接 |
-X |
不处理符号链接,只重建缓存 |
-f <conf> |
使用指定的配置文件而非默认的 /etc/ld.so.conf |
-C <cache> |
使用指定的缓存文件而非默认的 /etc/ld.so.cache |
-r <root> |
更改根目录(用于chroot环境) |
/etc/ld.so.conf
文件包含 ldconfig 扫描的目录列表。通常包含:
include /etc/ld.so.conf.d/*.conf
表示还会包含 /etc/ld.so.conf.d/
目录下所有 .conf
文件中的目录
/etc/ld.so.cache
二进制文件ld.so
) 使用这个缓存快速定位库文件库找不到错误:
error while loading shared libraries: libxyz.so.1: cannot open shared object file
解决方法:
sudo ldconfig
查看程序依赖的库:
ldd /path/to/program
手动添加库路径:
echo "/path/to/libs" | sudo tee /etc/ld.so.conf.d/my-libs.conf
sudo ldconfig
ldconfig
/etc/ld.so.conf.d/
下的单独文件中LD_LIBRARY_PATH
环境变量临时指定库路径LD_LIBRARY_PATH
,应正确配置系统库路径ldconfig
是维护 Linux 系统共享库环境的关键工具,正确使用可以避免许多库相关的运行时问题。