Kann ich meinen eigenen ld.so.cache benutzen?

13

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.confin 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 .confoder verwenden zu können .cache. Was ist der Sinn der beiden oben genannten Optionen ldconfig?

syockit
quelle

Antworten:

8

Ich denke, die Antwort auf Ihre Frage ist nein, obwohl Sie auf andere Weise dasselbe erreichen können.

In man ld.so sehe ich keine Erwähnung, benutzerdefinierte .conf oder .cache verwenden zu können

Es ist wahr, aber es gibt Erwähnungen von $LD_LIBRARY_PATHund --library-path, wobei ersteres allgemeiner nützlich ist.

Was ist der Sinn der beiden oben genannten Optionen von ldconfigdann?

So können Sie einen Cache erstellen, ohne das System zu überschreiben und ohne die Systemkonfigurationen verwenden zu müssen.

Goldlöckchen
quelle
... nur zum Teufel? Oder ist es für die Systemforensik?
Syockit
1
Es könnte für ein System-Image oder eine Chroot-Umgebung usw. sein
Goldlöckchen
5

/etc/ld.so.confwird nur von ldconfig(dem Cache-Generierungsprogramm) gelesen , nicht von ld.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.cachewird von gelesen ld.sound kann nicht von einem anderen Ort aus gelesen werden. Es kann dennoch nützlich sein, einen anderen Ausgabeort zu übergeben ldconfig. Der häufigste Anwendungsfall sind wahrscheinlich Chroot- Umgebungen. Sie können es verwenden ldconfig -r /some/root, um ldconfigauf 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.cacheoder später dort kopieren. Es gibt andere recht unklare Anwendungsfälle, zum Beispiel, wenn Sie ldconfigals 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 .

Gilles 'SO - hör auf böse zu sein'
quelle