Nach der Installation einiger Programme /opt/xxx/bin
möchte ich das /opt/xxx/bin
System $PATH
für die Nicht-Login-Shell aller Benutzer hinzufügen . Was sollte ich tun?
quelle
Nach der Installation einiger Programme /opt/xxx/bin
möchte ich das /opt/xxx/bin
System $PATH
für die Nicht-Login-Shell aller Benutzer hinzufügen . Was sollte ich tun?
Auf Debian und anderen Systemen, die PAM verwenden (was heutzutage die meisten von ihnen sind), können Sie Umgebungsvariablen (einschließlich PATH
) in festlegen /etc/environment
. Dies funktioniert für alle Anmeldemethoden, die das pam_env
Modul verwenden (entweder im auth
Abschnitt oder im session
Abschnitt). unter Debian sollten das alle sein (zumindest diejenigen, die Möglichkeiten zum Anmelden und Ausführen von Befehlen bieten).
Der Standardpfad könnte /etc/profile
wie in Joe, aber auch in festgelegt werden $HOME/.profile
. Ich habe auch viele Pakete, die ich selbst kompiliert habe (mit dem üblichen Verfahren ./configure --prefix=/opt/<name>
), installiert /opt
. Um die Binärdateien /opt/<name>/bin
ohne zusätzlichen Aufwand auszuführen , habe ich hinzugefügt
OPTDIR=/opt
for i in $OPTDIR/* ; do
BINDIR=$i/bin
if [ -d $BINDIR ] ; then
if [ -z $PATH ] ; then
PATH=$BINDIR
else
PATH=$BINDIR:$PATH
fi
fi
done
export PATH
zu meinem $HOME/.profile
was in deinem Fall wäre /etc/profile
. Selbst wenn ich /opt
in Zukunft Pakete unter installiere, muss ich mich nicht um den Zugriff auf die zugehörigen Binärdateien kümmern, /opt/.*/bin
da der Pfad automatisch hinzugefügt wird $PATH
.
Da die zusätzliche Software nicht erforderlich ist stabil bevorzugen i $HOME/.profile
über /etc/profile
.
Eine kleine Bemerkung: wird /etc/.profile
jeweils $HOME/profile
nicht von Ihrer Standard-Shell ausgeführt, sondern von dash
. Eine leichte Variante bash
, die die Last während des Startvorgangs reduziert.
/etc/profile
noch~/.profile
wird nicht von einer Nicht-Login-Shell ausgeführt.Xsession
) als Quelle verwenden . Jetzt hat jeder untergeordnete Prozess des Display-Managers die definierte$PATH
Variable. In den beiden beschriebenen Fällen funktioniert mein Ansatz definitiv und Sie können auf alle Binärdateien unter zugreifen/opt/.*/bin
.Ich habe die beste Antwort auf Serverfehler von Gilles gefunden :
Wie wird PATH für alle Benutzer in Debian festgelegt?
quelle
Der Standardpfad kann in / etc / profile festgelegt werden
Aber ich habe nur auf mein Ubuntu-System geschaut und es befindet sich in / etc / environment
quelle
/etc/profile
wird nicht von einer Nicht-Login-Shell ausgeführt.