Wie kann ich in CentOS eine Umgebungsvariable dauerhaft setzen?

6

Ich habe im SSH-Terminal auf meinem Server folgenden Befehl verwendet:

export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

und es funktioniert gut: mein Programm findet alle Bibliotheken an diesem Punkt (wenn ich es von meiner SSH-Befehlszeile aus starte).

Ein Kommando

env

zeigt, dass LD_LIBRARY_PATH richtig eingestellt ist.

Aber! Wenn ich meinen SSH-Client schließe und erneut eine Verbindung herstelle, ist kein LD_LIBRARY_PATH mehr festgelegt.

Wie setze ich unter CentOS ständig Umgebungsvariablen auf meinem Server? Vielen Dank.

user3545570
quelle
Lösung: Sie sollten eine Datei .sh in /etc/profile.d mit Exportbefehl erstellen
user3545570

Antworten:

4

Wie in Ihrer eigenen Antwort und der Antwort von @Fegnoid erwähnt, reicht es aus, die Variablen in eine .shDatei innerhalb /etc/profile.d/oder innerhalb von zu exportieren ~/.bash_profile. Beachten Sie, dass die Verwendung dieser Umgebungsvariablen in einem Dienstskript möglicherweise nicht wie erwartet funktioniert, da servicealle Umgebungsvariablen mit Ausnahme einiger weniger bereinigt werden.

Siehe https://unix.stackexchange.com/a/44378/148497 .

Santiago Baldrich
quelle
0

Exportieren Sie die Variablen in das ~ / .profile oder ~ / .bash_profile des Benutzers, um sie beim Anmelden so einzustellen, dass die Zeile lautet

LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
Fegnoid
quelle
1
Aber es ist derselbe Befehl, den ich verwendet habe. Nach dem erneuten Anschließen hat dies keine Auswirkung.
user3545570
Haben Sie die Zeile in die oben aufgeführten Dateien eingegeben? und rettete sie
Fegnoid
Ja, aber ich finde diese Variable nicht. Sollte ich den Server neu starten? Alternativ habe ich mit diesem Befehl .sh in /etc/profile.d erstellt und es hat funktioniert!
user3545570
ja , das würde, aber es wird für jeden Benutzer es in Kraft gesetzt, ich habe eigentlich das, was Sie falsch eingeben müssen , und meine Antwort korrigiert - sorry
Fegnoid