Dies ist kein Duplikat, da es sich um eine Besonderheit handelt, die mir bei der Verwendung aufgefallen ist /etc/ld.so.conf
.
Um die Pfade abzurufen, in denen der dynamische Linker nach Bibliotheken sucht, führe ich den Befehl aus ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
. Wann /etc/ld.so.conf
sind keine Pfade aufgeführt. Die Ausgabe des vorherigen Befehls ist
/lib
/usr/lib
Ich dachte mir, dass es /lib
zuerst und dann sucht /usr/lib
. Wenn ich einen neuen Pfad hinzufügen, wie /usr/local/lib
, zu /etc/ld.so.conf
und dann Remake /etc/ld.so.cache
vom Ausgang ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
wird
/usr/local/lib
/lib
/usr/lib
Ich finde das seltsam, denn wenn ich richtig bin, dass die Reihenfolge, in der die aufgelisteten Verzeichnisse durchsucht werden, von oben nach unten ist, werden zusätzliche Verzeichnisse vor /lib
und durchsucht /usr/lib
. Dass die zusätzlichen Verzeichnisse vor den vertrauenswürdigen Verzeichnissen durchsucht werden, ist an sich nicht seltsam, aber wenn /lib
vorher gesucht /usr/lib
wird, ist das seltsam, weil /bin
& /sbin
nach /usr/bin
& /usr/sbin
in gesucht werden PATH
.
Selbst wenn die von aufgelisteten Pfade ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
von unten nach oben durchsucht würden, wäre dies immer noch eine verzerrte Reihenfolge, da zusätzliche Verzeichnisse nach den vertrauenswürdigen /lib
durchsucht würden , während danach gesucht würde /usr/lib
.
In welcher Reihenfolge werden ld.so
Pfade nach Bibliotheken durchsucht? Warum wird /lib
vorher gesucht /usr/lib
? Wenn nicht, warum werden dann zusätzliche Verzeichnisse gesucht /lib
?