Die / lib und / usr / lib werden automatisch hinzugefügt. Andere Bibliotheken werden aus der Datei /etc/ld.so.conf hinzugefügt.
Woher weiß ein Programm, wo sich die gemeinsam genutzten Bibliotheken befinden, ohne LD_LIBRARY_PATH
Ich habe ein Programm foobar
, das gemeinsam genutzte Bibliotheken verwendet. Ich setze mich LD_LIBRARY_PATH
richtig ein und laufe dann
>ldd foobar
Ich kann sehen, dass es vollständige Pfade zu allen Bibliotheken kennt, die es benötigt.
Jedoch auf einigen Systemen ( „größer“ ist), brauche ich nicht LD_LIBRARY_PATH
für ldd
wissen, wo die Bibliotheken sind, und auf einigen ( „kleinen“ ist) ich.
Auf beiden Systemen ist die ausführbare Datei foobar
identisch, der Pfad dazu ist derselbe, und alle Bibliotheken und Pfade zu ihnen sind gleich.
Das heißt, das rpath
in die ausführbare Datei eingebaute, ist in beiden Fällen gleich.
Es muss also einen anderen Weg geben, um herauszufinden, wo sich die Bibliotheken befinden. Was ist es?
2 Antworten auf die Frage
ldconfig
ist ein Dienstprogramm, das einen Cache gemeinsam genutzter Bibliotheken verwaltet. Bei richtiger Konfiguration werden die richtigen Bibliothekspfade zwischengespeichert und stehen den Führungskräften zur Verfügung. Sie können ldconfig -p
die aktuell verfügbaren Bibliothekskandidaten ausdrucken.
Siehe die Manpage für ldconfig(8)
.
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4