ldconfig的作用是管理系统中的动态链接库,给所有的程序指定动态链接库的位置。ldconfig命令在Linux和FreeBSD中都存在,但是使用方法却相差很大,Linux下参数一大堆,FreeBSD相对来说简洁了不少。
在FreeBSD中,ldconfig是一个在启动时必须自启动的项目,必须的意思就是:你不能轻易关闭的项目,关闭了就会摊上大事的——不相信的可以试试,试之前一定准备好进入single模式,不会single模式的,抓紧去问度娘,当然有能力的可以去问Google。
命令格式:
ldconfig [-32] [-aout | -elf] [-Rimrsv] [-f hints_file]
[directory | file ...]
参数大致的解释:
-32 生成在64位系统下支持32位ABI的共享库
-aout 生成a.out格式的共享库
-elf 生成elf格式的共享库
-R 重新扫描配置目录,可以在命令行中另外指定目录,这个是默认的参数
-f 指定生成的hints文件,这个跟Linux中的不一样,手册中特别注明:本参数一般用在测试时使用
-i 运行在非安全模式,不会对作安全检查。安全检查重点是对于有全局或组的写权限,以及不是root属主的链接库,正常情况下会提示一个信息后忽略。
-m 导入新的链接库项目,而不是重新更新。
-r 列出当前的链接库,这是最常用的参数
-s 不要扫描内置的路径,也就是/usr/lib
-v 显示更多信息
相关文件:
/var/run/ld.so.hints a.out格式的链接库
/var/run/ld-elf.so.hints elf格式的链接库
/etc/ld.so.conf a.out格式的标准的配置文件
/etc/ld-elf.so.conf a.out格式的标准的配置文件
/var/run/ld-elf32.so.hints 32位的elf格式链接库
/var/run/ld32.so.hints 32位的a.out格式链接库
启动中的配置
ldconfig_insecure="NO" # 是否启用安全检查,对应于-i参数
ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg"
# 默认的搜索路径,如果自行添加的话,一定要添加在这之后,否则你会连系统都进不去,因为最起码的密码链接库都找不到了。
ldconfig32_paths="/usr/lib32" # 32-bit 链接库的位置
ldconfig_paths_aout="/usr/lib/compat/aout /usr/local/lib/aout"
# a.out 链接库的位置
ldconfig_local_dirs="/usr/local/libdata/ldconfig"
# 本地的配置文件
ldconfig_local32_dirs="/usr/local/libdata/ldconfig32"
# 本地32位的配置文件
示例:
# ldconfig -r
/var/run/ld-elf.so.hints:
search directories: /lib:/usr/lib:/usr/lib/compat:/usr/local/lib
0:-lc.7 => /lib/libc.so.7
1:-lcrypt.5 => /lib/libcrypt.so.5
2:-lkvm.6 => /lib/libkvm.so.6
3:-lm.5 => /lib/libm.so.5
4:-lmd.6 => /lib/libmd.so.6
5:-lncurses.8 => /lib/libncurses.so.8
6:-lncursesw.8 => /lib/libncursesw.so.8
7:-lsbuf.6 => /lib/libsbuf.so.6
8:-lutil.9 => /lib/libutil.so.9
9:-lcxxrt.1 => /lib/libcxxrt.so.1
10:-lalias.7 => /lib/libalias.so.7
11:-lbegemot.4 => /lib/libbegemot.so.4
12:-lcam.6 => /lib/libcam.so.6
13:-ldevstat.7 => /lib/libdevstat.so.7
14:-ledit.7 => /lib/libedit.so.7
15:-lbsdxml.4 => /lib/libbsdxml.so.4
16:-lgeom.5 => /lib/libgeom.so.5
17:-lipsec.4 => /lib/libipsec.so.4
18:-lipx.5 => /lib/libipx.so.5
19:-ljail.1 => /lib/libjail.so.1
20:-lkiconv.4 => /lib/libkiconv.so.4
21:-lpcap.8 => /lib/libpcap.so.8
22:-lthr.3 => /lib/libthr.so.3
23:-lufs.6 => /lib/libufs.so.6
24:-lulog.0 => /lib/libulog.so.0
25:-lz.6 => /lib/libz.so.6
26:-lavl.2 => /lib/libavl.so.2
27:-lctf.2 => /lib/libctf.so.2
28:-ldtrace.2 => /lib/libdtrace.so.2
…..
该贴由hui.chen转至本版2014-11-5 17:04:54