Wie kann ich Umgebungsvariablen in WSL dauerhaft setzen?
- Grundlagen zu Umgebungsvariablen in WSL
- Unterscheidung zwischen Login- und non-Login-Shell
- Umgebungsvariablen in der Bash dauerhaft setzen
- Alternative: Variablen in ~/.profile oder ~/.bash_profile setzen
- Umgebungsvariablen systemweit setzen
- Besonderheiten und Tipps für WSL
- Zusammenfassung
Grundlagen zu Umgebungsvariablen in WSL
Windows Subsystem for Linux (WSL) erlaubt es Ihnen, Linux-Distributionen auf einem Windows-Rechner auszuführen. Wie bei Linux üblich, werden Umgebungsvariablen verwendet, um Konfigurationswerte und Pfade für Prozesse bereitzustellen. Möchten Sie Umgebungsvariablen dauerhaft festlegen, sodass sie bei jedem Start einer Shell oder beim Systemstart verfügbar sind, müssen Sie diese in Konfigurationsdateien definieren, die beim Laden der Shell gelesen werden.
Unterscheidung zwischen Login- und non-Login-Shell
In WSL starten Sie zumeist eine interaktive Bash-Shell. Dabei wird unterschieden, ob es sich um eine Login-Shell oder eine normale interaktive Shell handelt. Die Konfigurationsdateien, die beim Start geladen werden, unterscheiden sich dementsprechend. Eine Login-Shell liest zum Beispiel ~/.bash_profile oder ~/.profile, während eine interaktive nicht-login Shell z.B. ~/.bashrc lädt.
Umgebungsvariablen in der Bash dauerhaft setzen
Die gängigste Methode ist, Ihre Umgebungsvariablen in die Datei ~/.bashrc zu schreiben. Diese Datei wird bei jedem Start einer interaktiven Bash-Shell geladen, was für die meisten Nutzer der normale Fall ist.
Dazu öffnen Sie zunächst die Datei mit einem Editor. Zum Beispiel mit nano:
nano ~/.bashrcFügen Sie am Ende der Datei Zeilen im Format export VAR_NAME="wert" ein. Zum Beispiel:
export MEINE_VAR="mein_wert"export PATH="$PATH:/mein/neuer/pfad"Speichern Sie die Datei und laden Sie die Konfiguration neu mit:
source ~/.bashrcDiese Variablen sind nun für alle künftig gestarteten Shells verfügbar.
Alternative: Variablen in ~/.profile oder ~/.bash_profile setzen
Manche Linux-Distributionen nutzen für Login-Shells die Datei ~/.profile oder ~/.bash_profile. Möchten Sie sicherstellen, dass die Variablen auch in Login-Shells oder bei grafischer Anmeldung verfügbar sind, können Sie die export-Zeilen alternativ dort einfügen.
Da WSL typischerweise eine Konsolenumgebung verwendet, reicht meist ~/.bashrc.
Umgebungsvariablen systemweit setzen
Für systemweit gültige Umgebungsvariablen, die für alle Benutzer gelten sollen, können Sie die Datei /etc/environment anpassen. Diese ist allerdings keine Skript-Datei, sondern eine einfache zu parsende Datei, in der Variablen ohne export definiert werden, z.B.:
MEINE_VAR="mein_wert"PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/mein/neuer/pfad"Nach der Änderung melden Sie sich ab und wieder an, damit sie wirksam werden.
Besonderheiten und Tipps für WSL
WSL startet standardmäßig eine nicht-login-Shll, weshalb ~/.bashrc meist die richtige Adresse für Umgebungsvariablen ist. Beachten Sie, dass Windows-Umgebungsvariablen in WSL bei jedem Start über einen Mechanismus in /etc/wsl.conf mitgegeben werden können, was eine weitere Möglichkeit für Variablen-Definitionen darstellt. Allerdings ist dies primär für die Synchronisation von Windows-Umgebungsvariablen gedacht.
Beispiel für Eintrag in /etc/wsl.conf:
appendWindowsPath = trueZur Erweiterung oder quellen neuer Variablen kann es auch sinnvoll sein, eigene Skriptdateien in /etc/profile.d/ zu erstellen (z.B. custom_env.sh) mit export-Anweisungen, die beim Shell-Start systemweit geladen werden.
Zusammenfassung
Um Umgebungsvariablen in WSL dauerhaft zu setzen, fügen Sie Ihre export-Anweisungen meist in ~/.bashrc ein. Für systemweite Einstellungen bieten sich /etc/environment oder eigene Skripte in /etc/profile.d/ an. So stellen Sie sicher, dass die Variablen bei jedem Start der Shell verfügbar sind.