Ich erhalte Fehler in der gemeinsam genutzten Bibliothek, wenn ich Software manuell zu installieren scheine. Bei der Ausführung wird echo $LD_LIBRARY_PATH
es als .. nichts angezeigt . Ich habe versucht /usr/local/lib
, eine .conf
Datei hinzuzufügen , /etc/ld.so.conf.d
aber es scheint, als würde sie niemals ausgeführt.
Dies funktioniert auch nicht (Anführungszeichen oder auf andere Weise):
LD_LIBRARY_PATH="/usr/local/lib"
export LD_LIBRARY_PATH
sudo ldconfig -v
Der Wert wird vorübergehend festgelegt, behält ihn jedoch nicht bei, wenn ich ein Terminalfenster verlasse. Ein Neustart bewirkt auch nichts.
sudo
environment-variables
shared-library
Dissidentenwut
quelle
quelle
~/.bashrc
Antworten:
Fügen Sie Folgendes hinzu
.bashrc
:Auf diese Weise können Sie Ihren Computer neu starten und diesen Pfad weiterhin zuweisen.
quelle
/etc/ld.so.conf.d
?Unter Red Hat Enterprise Linux (RHEL) 6
/etc/ld.so.conf
enthältinclude ld.so.conf.d/*.conf
. Ohne diese Zeile/etc/ld.so.conf.d/*.conf
würden Elemente in niemals analysiert.Um zu sehen, welche Bibliotheken / Verzeichnisse
ldconfig
analysiert werdenquelle
/etc/ld.so.conf
früher nachgesehen, als ich neugierig war, was es enthielt. Es hatte dieinclude
Linie.ldconfig -v
möglicherweise eine Vorstellung davon, warum die Bibliothek nicht enthalten ist. Sie können ausführenldconfig -p
, um die Bibliotheken und Verzeichnisse zu drucken, die sich in der aktuellen Cache-Datei befinden.Ich habe dies schließlich mit einem Alias gelöst:
Stellen Sie sicher, dass Sie einfache Anführungszeichen verwenden, damit die Variablen zum Zeitpunkt des Aufrufs und nicht zum Zeitpunkt der Definition des Alias erweitert werden.
Diese:
(Sie können sehen , welche Dinge auf mit:
sudo bash -c "echo $HOME"
)Ich arbeite mit benutzerdefinierten Treibern und muss immer meine Testprogramme sudo, um auf den Treiber zuzugreifen. Ich möchte keine Testversionen von Bibliotheken im Systembereich installieren, daher verwende ich LD_LIBRARY_PATH, um bei Bedarf ein bestimmtes Testverzeichnis einzurichten. Ich kann nicht einfach einen festen LD_LIBRARY_PATH festlegen, ich muss ihn ändern und die aktuelle Einstellung beibehalten können. Durch das Beibehalten von PATH und HOME habe ich Zugriff auf meine Arbeitsumgebung - Skripte und Verzeichnisstruktur.
Dieser Alias vermeidet, pauschale Berechtigungen in Sudoern erteilen zu müssen ... und es gibt anscheinend keine Problemumgehung für LD_LIBRARY_PATH, unabhängig von den Sudoer-Einstellungen. Es funktioniert nicht sudo in Skripten, aber diese können nach Bedarf fest codiert werden.
quelle