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.)
Danke für den Tipp, genau das habe ich jetzt gebraucht als Bestätigung meiner Vermutung bzgl. /etc/profile.d/