Re: Suchpfad für X-Konsole?
Alfred Ostermeier <ostermeier.a@t-online.de> wrote:
> Andreas Metzler wrote:
>> Setze ihn in /etc/environment statt in /etc/profile. Vorsicht,
>> /etc/environment wird von PAM und nicht von der Shell ausgewertet,
>> daher ist die Syntax geringfuegig anders, naemlich variable=wert statt
>> export variable=wert.
> Aha. Ich habe es ausprobiert und /etc/environment ist tatsächlich der
> richtige Ort. Danke!
> Ich habe nun auch im Internet nachgeforscht. Es scheint wohl viele
> verschiedene Dateien zu geben, in denen man PATH-Variablen setzen kann,
> wobei diese Konfigurationsdateien in einer bestimmten Reihenfolge
> abgearbeitet werden und eine später eingelesene Datei die Einträge einer
> früher eingelesenen überschreiben kann. Muss ehrlich sagen, nach einem
> 3/4 Jahr Linux bin ich in Sachen Umgebungsvariablen immer noch nicht
> ganz durchgestiegen. Gibt es vielleicht eine gute Doku zum diesem
> anscheinend sehr komplexen Thema?
So kompliziert ist das nicht (aber unzufiedenstellend) ;-)
Login via Konsole oder ssh
1. Sofern in /etc/pam.d/login bzw. /etc/pam.d/ssh konfiguriert wird
pam_env gestartet und wertet /etc/environment aus.
2. Eine Login-shell wird gestartet, d.h. es wird zuerst /etc/profile
und ~/.bash_profile, ~/.bash_login oder ~/.profile gelesen, von den
3 Dateien in ~/ wird die erste existente ausgewertet, dh. wenn du
~/.bash_profile anlegst wird ~/.profile ignoriert.
3. Tochterprozesse dieser Shell (z.B. startx und dein Windowmanager
erben die Umgebungsvariablen.
Login via (x|k|g)dm
1. Wie oben nur mit /etc/pam.d/xdm, ...
2. Es wird mehr oder weniger direkt /etc/X11/Xsession gestartet, das
Windowmanager, etc. startet, es ist keine Login-Shell im Spiel,
daher wird /etc/profile _nicht_ ausgewertet.
3. Oeffnest du dann unter X11 einen xterm oder Konsole wird darin je
nach Konfiguration eine Loginshell oder eine interaktive normale
Shell, aufgerufen. Letztere wertet ~/.bashrc aber keine der 4
profile-Dateien aus.
Das hoert sich recht harmlos an, hat aber laestige Auswirkungen, wenn
du z.B. in ~/.profile LANG=de_DE setzt. Ein Program unter X wird sich
dann unterschiedlich verhalten ob du es aus einem Terminal mit
login-shell (LANG=de_DE) oder ueber das Menue des Windowmanagers
aufrufst (LANG nicht gesetzt).
Etwas komplizierter wird es noch, da man diverse der erwaehnten
Dateien ueber Kreuz einliest, z.B. habe ich in
# ~/.bash_profile
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Damit ich die in .bashrc definierten Aliase auch in Login-Shells habe.
Lesetipps: bash(1), Xsession(5).
cu andreas
--
Hey, da ist ein Ballonautomat auf der Toilette!
Unofficial _Debian-packages_ of latest unstable _tin_
http://www.logic.univie.ac.at/~ametzler/debian/tin-snapshot/
Reply to: