Ich installiere mehrere Binärdateien und Bibliotheken lokal, da ich keinen Root-Zugriff habe.
Einige der Programme müssen zur Laufzeit dynamisch mit einer gemeinsam genutzten Bibliothek an einem nicht standardmäßigen Speicherort verknüpft werden.
Wenn es ausgeführt wird, gibt das Programm zurück:
%Vor% Ich habe Pfade zu den Bibliotheken $LD_LIBRARY_PATH
hinzugefügt, aber ich kann den ldconfig
Cache ohne Root-Zugriff nicht aktualisieren ...
Gibt es eine benutzerspezifische /etc/ld.so.cache
?
Oder ist es generell möglich, eine Systemkonfigurationsdatei mit einer Benutzerkonfigurationsdatei zu "maskieren"?
Der ldconfig-Cache gilt nur für den Pfad, der in /etc/ld.so.conf oder /etc/ld.so.conf.d angegeben ist. Da diese für Nicht-Root-Benutzer nicht beschreibbar sind, können Sie sie nicht dazu verwenden, die Startgeschwindigkeit für ohne root-Berechtigungen installierte ausführbare Dateien ohne die Hilfe von root zu verbessern (aber selbst dann wäre es eine schlechte Idee, diesen Benutzern eine schreibbare Datei hinzuzufügen) systemweite Bibliothek Suchpfade).
In diesen Fällen müssen Sie entweder die Umgebungsvariable LD_LIBRARY_PATH oder rpath / runpath in der ausführbaren Datei oder Bibliothek verwenden, die von Bibliotheken im nicht standardmäßigen Pfad abhängig ist. Geschwindigkeitsunterschiede zwischen LD_LIBRARY_PATH und rpath / runpath sind mir nicht bekannt, aber rpath / runpath haben den Vorteil, dass sie nur bestimmte ausführbare Dateien betreffen und somit weniger Probleme für andere Programme verursachen.
Unter Linux / Unix gibt es keine allgemeine Möglichkeit, eine Systemkonfigurationsdatei zu maskieren und stattdessen eine vom Benutzer bereitgestellte Datei zu verwenden. In der Tat muss das Unix-Sicherheitsmodell aktiv verhindern, dass verschiedene Arten von Privilegien-Eskalationen vermieden werden. Aus diesem Grund werden selbst viele Umgebungsvariablen für suid-Executables deaktiviert. Bei vielen Programmen gibt es eine Möglichkeit, die übergeordnete Benutzerkonfiguration anzugeben, bei einigen komplizierteren gibt es Möglichkeiten für den Systemadministrator, obligatorische Einstellungen festzulegen, die nicht überschrieben werden können.
Tags und Links linux shared-libraries centos ldd library-path