Isso não é uma duplicata porque está lidando com uma peculiaridade que notei quando uso /etc/ld.so.conf
.
Para obter os caminhos que as pesquisas vinculador dinâmico em para bibliotecas, eu executar o comando ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
. Quando /etc/ld.so.conf
não há caminhos listados nele. A saída do comando anterior é
/lib
/usr/lib
Achei que ele procurava /lib
primeiro e depois /usr/lib
. Quando adiciono um novo caminho, como /usr/local/lib
, para /etc/ld.so.conf
e, em seguida /etc/ld.so.cache
, refiro , a saída de ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
se torna
/usr/local/lib
/lib
/usr/lib
Acho isso estranho, porque, se eu estiver certo de que a ordem em que os diretórios listados são pesquisados é de cima para baixo, os diretórios adicionais serão pesquisados antes /lib
e /usr/lib
. O fato de os diretórios adicionais serem pesquisados antes dos diretórios confiáveis não é estranho por si só, mas quando /lib
é pesquisado antes /usr/lib
, isso é estranho porque /bin
& /sbin
é pesquisado após /usr/bin
& /usr/sbin
in PATH
.
Mesmo que os caminhos listados por ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
fossem pesquisados de baixo para cima, ainda assim seria uma ordenação distorcida, porque diretórios adicionais seriam pesquisados pelos confiáveis e /lib
, depois, pesquisados /usr/lib
.
Então, qual é a ordem em que ld.so
procura caminhos para bibliotecas? Por que é /lib
pesquisado antes /usr/lib
? Caso contrário, por que diretórios adicionais são pesquisados /lib
?