Esto no es un duplicado porque se trata de una peculiaridad que noté cuando la uso /etc/ld.so.conf
.
Para obtener las rutas en las que el enlazador dinámico busca bibliotecas, ejecuto el comando ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
. Cuando /etc/ld.so.conf
no tiene rutas enumeradas en él. El resultado del comando anterior es
/lib
/usr/lib
Pensé que busca /lib
primero y luego /usr/lib
. Cuando agrego una nueva ruta, como /usr/local/lib
, a /etc/ld.so.conf
y luego rehacer /etc/ld.so.cache
, la salida de se ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
convierte en
/usr/local/lib
/lib
/usr/lib
Esto me parece extraño porque si estoy en lo cierto, el orden en que se buscan los directorios enumerados es de arriba a abajo, entonces se buscan directorios adicionales antes /lib
y /usr/lib
. Que los directorios adicionales se busquen antes que los directorios de confianza no es extraño por sí solo, pero cuando /lib
se busca antes /usr/lib
, eso es extraño porque /bin
& /sbin
se busca después /usr/bin
& /usr/sbin
adentro PATH
.
Incluso si las rutas enumeradas por ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
se buscaran de abajo hacia arriba, seguiría siendo un orden sesgado porque se buscarían directorios adicionales después de los de confianza mientras se /lib
buscarían /usr/lib
.
Entonces, ¿cuál es el orden en el que ld.so
busca rutas en las bibliotecas? ¿Por qué se /lib
busca antes /usr/lib
? Si no es así, ¿por qué se buscan directorios adicionales /lib
?
fuente
PATH
.