SnowLeopardでのPATH管理についての覚書き
環境変数PATHの設定管理をする方法の覚書きです。
Macでは /usr/libexec/path_helper というスクリプトを使って、PATHが設定されます。
/etc/profileを見ると、下記の様な記述があります。
これが設定している部分です。
if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi
ただ、これだけでは何をやっているか分かりません。
実行してみましょう。
$ /usr/libexec/path_helper -s PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/mysql/bin:/usr/X11/bin"; export PATH;
PATHの文字列が作られ、exportで設定されている事が分かります。
これらのPATHは、/etc/paths および /etc/paths.d/* から作られています。
またPATHの順序は、ファイルを読んだ順になっています。
/etc/paths -> /etc/paths.d/0* -> /etc/paths.d/1* -> .. -> /etc/paths.d/Z*
では、追加をしてみます。
MacPortsでインストールしたコマンドが置かれる /opt/local/bin を先頭に追加してみましょう。
条件は、PATHの一番最初に追加し、優先して /opt/local/bin 以下のコマンドを利用できるようにします。
一番最初に追加するには /etc/paths の先頭行に書きます。
$ sudo vim /etc/paths /opt/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin
$ /usr/libexec/path_helper -s PATH="/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/mysql/bin:/usr/X11/bin"; export PATH;
実際に適用するには、端末を起動し直すか、/etc/profileを読み直してください。
適用されているかは、下記のコマンドで調べられます。
$ echo $PATH