Questo non è un duplicato perché si tratta di una peculiarità che ho notato quando uso /etc/ld.so.conf.
Per ottenere i percorsi in cui il linker dinamico cerca le librerie, eseguo il comando ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g". Quando /etc/ld.so.confnon contiene percorsi elencati. L'output del comando precedente è
/lib
/usr/lib
Ho pensato che /libprima cercasse e poi /usr/lib. Quando aggiungo un nuovo percorso, ad esempio /usr/local/lib, /etc/ld.so.confae poi rifaccio /etc/ld.so.cache, l'output da ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"diventa
/usr/local/lib
/lib
/usr/lib
Lo trovo strano perché se ho ragione che l'ordine in cui le directory elencate sono ricercate è dall'alto verso il basso, allora vengono cercate altre directory prima /libe /usr/lib. Che le directory aggiuntive vengano ricercate prima delle directory attendibili non è strano da solo, ma quando /libviene cercato prima /usr/lib, è strano perché /bin& /sbinvengono cercate dopo /usr/bine /usr/sbinin PATH.
Anche se i percorsi elencati ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"fossero cercati dal basso verso l'alto, sarebbe comunque un ordinamento distorto perché le directory aggiuntive verrebbero ricercate dopo quelle fidate mentre /libsarebbero state cercate dopo /usr/lib.
Quindi, qual è l'ordine in cui ld.socercano i percorsi per le librerie? Perché viene /libcercato prima /usr/lib? In caso contrario, perché vengono ricercate ulteriori directory /lib?