Debian

如何為所有使用者的 debian 非登錄 shell 添加系統 $PATH 的路徑

  • May 4, 2017

在安裝了一些程序後/opt/xxx/bin,我想為所有使用者的非登錄shell添加/opt/xxx/bin到系統中。$PATH我該怎麼辦?

在 Debian 和其他使用 PAM 的系統上(現在大多數係統),您可以PATH/etc/environment. 這將適用於使用該pam_env模組的任何登錄方法(在該auth部分或在該session部分中);在 Debian 上應該是所有這些(至少是那些提供登錄和執行命令的方法)。

預設路徑可以/etc/profile像 Joe 所說的那樣設置在$HOME/.profile. 我也有很多我自己編譯的包(使用通用程序./configure --prefix=/opt/<name>)安裝在/opt. 為了執行二進製文件/opt/<name>/bin而無需任何額外的努力,我添加了

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

對我$HOME/.profile來說,在你的情況下是/etc/profile。現在,即使我/opt將來安裝軟體包,我也不必擔心訪問相關的二進製文件,/opt/.*/bin因為路徑會自動添加到$PATH.

因為附加軟體不需要穩定,我更$HOME/.profile喜歡/etc/profile.


一個小評論:/etc/.profile分別$HOME/profile不是由您的預設外殼執行,而是由dash. 一種輕量級變體,bash可減少啟動過程中的負載。

引用自:https://unix.stackexchange.com/questions/47597