2012年12月29日土曜日

ログイン時の PATH

ログイン時の PATH は
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
となっています。
https://help.ubuntu.com/community/EnvironmentVariables を読むと
$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
で設定されているようです。
PATH をはじめとする System-wide な環境変数はこのファイルで設定するのが作法のようです。
今まではこのファイルの存在を知らなかったので /etc/profile で設定してたのですが、お勧めじゃないんですね。
「ベテラン UNIX システム管理者からは環境変数は /etc/profile って言われるかもしれないけど、Ubuntu はそうじゃない」みたいなこと書いてますね。

でも、ユーザー毎の環境変数も ~/.profile とかではなく、
$ cat ~/.pam_environment 
PATH DEFAULT=${PATH}:~/MyPrograms
というようにしてねって書いてますが、このとおりにすると
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:~/MyPrograms:~/MyPrograms
~/MyPrograms が二重に設定されてしまい、動作的には問題なさそうですがすっきりしません。
Ubuntu 10.04.4、Ubuntu 12.10 で確認しましたが、どちらも二重に設定されました。 当面は今までどおり
$ cat ~/.profile | tail -n 1
PATH=$PATH:~/MyPrograms

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/user/MyPrograms
とします。ちなみに、
~/.pam_environment だと ~ がそのまま PATH に出てきて
~/.profile だと ~ が絶対パスに展開されますね。

0 件のコメント:

コメントを投稿