ldconfig
hat zwei interessante Möglichkeiten:
-f conf
Use conf instead of /etc/ld.so.conf.
-C cache
Use cache instead of /etc/ld.so.cache.
Ich habe versucht, /etc/ld.so.conf
in mein eigenes Home-Verzeichnis zu kopieren und es so bearbeitet, dass es Pfade zu meinen lokalen Bibliotheken, z /home/syockit/local/usr/lib
. B. usw., enthält. Und lief
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache
und anschließend lief ich, um zu bestätigen, dass die Bibliotheken zwischengespeichert sind
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less
und es enthält alle meine Bibliotheken zusätzlich zu den Systembibliotheken.
Jetzt möchte ich, dass der Standard-Linker diese beiden verwendet. Aber in man ld.so
, sehe ich keine Erwähnung, benutzerdefinierte .conf
oder verwenden zu können .cache
. Was ist der Sinn der beiden oben genannten Optionen ldconfig
?
quelle
/etc/ld.so.conf
wird nur vonldconfig
(dem Cache-Generierungsprogramm) gelesen , nicht vonld.so
(dem Dynamic Loader). Sie können den Speicherort der Konfigurationsdatei ändern, wenn Sie einen vom Systemstandard abweichenden Cache generieren möchten./etc/ld.so.cache
wird von gelesenld.so
und kann nicht von einem anderen Ort aus gelesen werden. Es kann dennoch nützlich sein, einen anderen Ausgabeort zu übergebenldconfig
. Der häufigste Anwendungsfall sind wahrscheinlich Chroot- Umgebungen. Sie können es verwendenldconfig -r /some/root
, umldconfig
auf einem alternativen Stamm auszuführen und die Ausgabe an einer beliebigen Stelle (innerhalb oder außerhalb dieses Stamms) abzulegen. Sie müssen die Ausgabe entweder an ausgeben/some/root/etc/ld.so.cache
oder später dort kopieren. Es gibt andere recht unklare Anwendungsfälle, zum Beispiel, wenn Sieldconfig
als nicht privilegierter Benutzer (der nicht schreiben kann/etc/ld.so.cache
) ausgeführt werden und die Datei später an ihren Platz verschieben möchten .quelle