这不是重复的,因为这处理的是我在使用时注意到的特殊性/etc/ld.so.conf
。
要获取动态链接程序在库中搜索的路径,请运行命令ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
。何时/etc/ld.so.conf
未列出任何路径。上一条命令的输出是
/lib
/usr/lib
我认为它/lib
首先搜索,然后搜索/usr/lib
。当添加新的路径,例如/usr/local/lib
,对/etc/ld.so.conf
再重拍/etc/ld.so.cache
时,输出从ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
变
/usr/local/lib
/lib
/usr/lib
我觉得这很奇怪,因为如果我正确地搜索列出的目录的顺序是从上到下,那么在/lib
和之前会搜索其他目录/usr/lib
。在受信任目录之前搜索附加目录并不奇怪,但是在/lib
之前搜索时/usr/lib
,这很奇怪,因为/bin
&/sbin
在/usr/bin
&/usr/sbin
in 之后搜索PATH
。
即使被列出的路径ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
是从底部寻找到顶部,它仍然是一个扭曲的排序,因为额外的目录会在受信任的人后,而被搜索/lib
会后进行搜索/usr/lib
。
那么,ld.so
搜索库路径的顺序是什么?为什么/lib
以前被搜索/usr/lib
?如果不是,那么为什么还要搜索其他目录/lib
?