Globale Umgebungsvariablen in CentOS

Ich stehe häufiger vor dem Problem, daß ich Software installiere und den Pfad zu den Binaries gerne der Umgebungsvariable PATH hinzufügen möchte. Nun könnte ich dies — z.B. nach der Installation von qmail — sehr bequem erreichen, indem ich einfach in meinem Userprofil der Datei /.bashrc eine Zeile wie diese hier hinzufüge:

export PATH=$PATH:/var/qmail/bin

Damit habe ich das Problem aber nur für mich gelöst. Nun könnte ich eine entsprechende Datei auch in /etc/skel/ ablegen, aber das hilft nur neu angelegten Usern. Ich könnte auch die /etc/profile editieren, aber diese Datei wird nur für Login-Shells berücksichtigt und ist so zum Beispiel keine Hilfe für User die gerne screen nutzen (außerdem wurde sie von der Paketverwaltung angelegt und wenn ich sie ändere, bekomme ich in Zukunft bei jedem Update dieser Datei eine /etc/profile.rpmnew angelegt und muß den Versionskonflikt händisch lösen). Eine /etc/bashrc gibt es leider nicht und die Bash würde sie auch nicht berücksichtigen, wenn es sie gäbe. Wie ist also nun die Vorgehensweise um unter CentOS eine Umgebungsvariable global zu setzen oder zu verändern?

Die Antwort ist /etc/profile.d/. In diesem Verzeichnis kann man sehr bequem globale Umgebungsvariablen einrichten und dabei auf die verschiedenen installierten Shells eingehen. So liest die Bash z.B. nur auf .sh endende Dateien in diesem Ordner ein und die CSH liest nur ausführbare und auf .csh endende Dateien ein. Ein weiterer Vorteil ist, daß man die bereits in diesem Ordner liegenden Dateien einfach in Ruhe lassen kann und nur neue anzulegen braucht, die Wahrscheinlichkeit von Konflikten mit der Paketverwaltung ist dadurch schonmal verringert.

Um beim Beispiel qmail zu bleiben, lege ich mir also eine /etc/profile.d/qmail.sh mit dem gewünschten Inhalt an:

export PATH=$PATH:/var/qmail/bin

Die Datei muß (anders als bei CSH) nicht ausführbar gemacht werden und muß keinen Shebang enthalten.

Und schon habe ich /var/qmail/bin ab sofort in der Umgebungsvariable PATH jeder neuen Bash-Shell die ich öffne — systemweit und bei jedem User.

(Noch besser: Auch die Manpages für qmail werden jetzt automatisch gefunden.)

Eine Antwort auf „Globale Umgebungsvariablen in CentOS“

  1. Danke für den Tipp, genau das habe ich jetzt gebraucht als Bestätigung meiner Vermutung bzgl. /etc/profile.d/

Kommentare sind geschlossen.