LPI Linux 认证/管理共享库
外观
(LPIC-1 版本 5.0)
权重:1
描述
考生应该能够确定可执行程序所依赖的共享库,并在必要时安装它们。
关键知识领域
- 识别共享库。
- 识别系统库的典型位置。
- 加载共享库。
以下是用到的文件、术语和实用程序的列表
ldd
ldconfig
/etc/ld.so.conf
LD_LIBRARY_PATH
库是一组函数,程序可以使用它们来实现其功能。在构建(链接)程序时,这些库可以静态或动态地链接到可执行文件。静态链接意味着最终程序将包含其文件内的库函数。(lib.a)动态链接意味着在程序需要执行时,需要将需要的库加载到 RAM 中。(lib.so)
所有标准库的默认目录为
- /lib:主要用于 /bin 程序。
- /usr/lib:主要用于 /usr/bin 程序。
文件/etc/ld.so.conf用于系统指定其他库位置。要构建运行时加载程序使用的所有可用库的缓存文件,请使用 ldconfig。文件/etc/ld.so.cache将被生成。
要打印共享程序或库依赖项,请使用 ldd。
ldd [-vdr] program|library
示例
$ ldd -d -v /bin/cp libc.so.6 => /lib/libc.so.6 (0x40027000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Version information: /bin/cp: libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6 libc.so.6 (GLIBC_2.1) => /lib/libc.so.6 libc.so.6 (GLIBC_2.2) => /lib/libc.so.6 libc.so.6 (GLIBC_2.0) => /lib/libc.so.6 /lib/libc.so.6: ld-linux.so.2 (GLIBC_2.1.1) => /lib/ldlinux.so.2 ld-linux.so.2 (GLIBC_2.2.3) => /lib/ldlinux.so.2 ld-linux.so.2 (GLIBC_2.1) => /lib/ldlinux.so.2 ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2 ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
运行时加载程序ld.so找到程序所需的库,并将其加载到 RAM 中。ld.so 的搜索顺序是
- LD_LIBRARY_PATH
- 缓存文件 /etc/ld.so.cache
- 默认目录 /lib 和 /usr/lib。