Ce n'est pas un doublon car il s'agit d'une particularité que j'ai remarquée lorsque j'utilise /etc/ld.so.conf
.
Pour obtenir les chemins dans lesquels l'éditeur de liens dynamique recherche les bibliothèques, j'exécute la commande ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
. Quand /etc/ld.so.conf
n'a aucun chemin d'accès répertorié. La sortie de la commande précédente est
/lib
/usr/lib
J'ai pensé qu'il cherche d' /lib
abord et ensuite /usr/lib
. Lorsque j'ajoute un nouveau chemin, tel que /usr/local/lib
, /etc/ld.so.conf
puis refaire /etc/ld.so.cache
, la sortie de ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
devient
/usr/local/lib
/lib
/usr/lib
Je trouve cela étrange parce que si j'ai raison que l'ordre dans lequel les répertoires répertoriés sont recherchés est de haut en bas, alors les répertoires supplémentaires sont recherchés avant /lib
et /usr/lib
. Que les répertoires supplémentaires soient recherchés avant les répertoires de confiance n'est pas étrange en soi, mais quand /lib
est recherché avant /usr/lib
, c'est étrange car /bin
& /sbin
sont recherchés après /usr/bin
& /usr/sbin
dans PATH
.
Même si les chemins répertoriés par ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
étaient recherchés de bas en haut, il s'agirait tout de même d'un ordre biaisé car des répertoires supplémentaires seraient recherchés après ceux de confiance alors /lib
qu'ils seraient recherchés /usr/lib
.
Alors, quel est l'ordre de ld.so
recherche des chemins d'accès aux bibliothèques dans? Pourquoi est /lib
recherché avant /usr/lib
? Si ce n'est pas le cas, pourquoi les répertoires supplémentaires sont-ils recherchés /lib
?
la source
PATH
.