Was sind die richtigen Orte für:
- Globale Umgebungsvariablen, die alle Benutzer betreffen sollen?
- Benutzerspezifische Umgebungsvariablen?
Was sind die richtigen Orte für:
Ich denke, die Community-Wiki-Seite zu Umgebungsvariablen wird Ihnen beim Aussortieren helfen
Um die Antwort von sagarchalise zu ergänzen, kann ich zusammenfassen, was der Link als geeignete Orte für Einstellungen vorschlägt.
Für globale Einstellungen systemweite Umgebungsvariablen
/etc/environment
/etc/profile
oder/etc/bash.bashrc
Von der Seite:
Verwenden
/etc/profile
ist ein sehr unixmäßiger Weg, aber seine Funktionalität ist unter Ubuntu stark eingeschränkt. Es existiert nur/etc/bash.bashrc
, um auf Einträge zu verweisen und diese zu sammeln/etc/profile.d
.Auf meinem System ist der einzige interessante Eintrag in profile.d
/etc/profile.d/bash_completion.sh
.Für lokale oder benutzerspezifische Einstellungen
Eine frühere Version der Ubuntu-Seite wird empfohlen
~/.pam_environment
, aber die Seite schlägt derzeit vor, dass Sie verwenden sollten, wenn dies nicht funktioniert~/.bash_profile
oder~./bash_login
- Wenn eines davon existiert, führt bash es aus, anstatt~/.profile
wenn bash als Login-Shell gestartet wird. Bash werden es vorziehen ,~/.bash_profile
zu~/.bash_login
. [...] Diese Dateien haben standardmäßig keinen Einfluss auf eine Grafiksitzung. "~/.bashrc
- "... kann der einfachste Ort sein, um Variablen zu setzen".quelle
/etc/environment
wann? Es scheint nicht mit Cron zu funktionieren, auch wenn es verwendet wirdSHELL=/bin/bash
/etc/environment
mögenJAVA_HOME="/opt/java"
undANT_HOME="/opt/ant"
wie es gehtDu hast:
die in Lucid und Maverick laufen
falls vorhanden und falls die Shell des Benutzers bash ist:
Für die Benutzerumgebung gibt es ein verwirrendes Array, das spezifisch für die Shell ist und angibt, ob sie als "Anmeldeshell" betrachtet wird. Wenn die Shell bash ist:
für sh / dash:
für zsh werde ich nicht einmal versuchen , dies zu verstehen .
quelle
Wie auf https://help.ubuntu.com/community/EnvironmentVariables empfohlen :
Globale Umgebungsvariablen, die alle Benutzer betreffen sollen, sollten berücksichtigt werden
/etc/environment
.Benutzerspezifische Umgebungsvariablen sollten eingestellt werden
~/.pam_environment
.Vermeiden Sie die Profil- und RC-Dateien zum Setzen von Umgebungsvariablen unter Ubuntu. Sie haben mir mehr Kopfschmerzen verursacht, als sie wert sind.
Das ist aber leichter gesagt als getan;)
Es ist möglich, dass Sie auf dieselbe Konfigurationslücke stoßen, die für mich bestand. Siehe die Problemumgehung für verschlüsseltes Zuhause weiter unten.
Meine
~/.pam_environment
:Warum der hässliche statische Pfad?
${PATH}
würde nicht für mich arbeiten. Ich habe mein Login mehrmals gemauert und versucht, es zu umgehen, also bleibe ich bei der hässlichen statischen Kopie der Standardeinstellungen :)Problemumgehung für verschlüsselte private Ordner
Wenn Sie in Ubuntu-Versionen bis einschließlich Precise 12.04 Beta 2 ein verschlüsseltes Basisverzeichnis verwenden, müssen Sie Änderungen vornehmen
/etc/pam.d/common-session
, damit es geladen wird~/.pam_environment
. Diese Lösung funktioniert anscheinend für frühere Versionen, ich habe sie jedoch nicht getestet.Guenther Montag (g-montag) schrieb am 19.08.2010:
Angepasst von meiner Antwort auf Super User: https://superuser.com/a/408373/66856
quelle
${HOME}
wird auch nicht funktionieren. Es gibt keine Erweiterung in.pam_environment
..pam_environment
, aberHOME
ist normalerweise nicht so früh eingestellt. Wenn diese Zeile gelesen hätteDEFAULT=${PATH}/Applications/jdk
, hätten Sie den Wert von darinPATH
eingefügt gesehen.