2009-11-11 18:48:39 +0000 2009-11-11 18:48:39 +0000
141
141

OS X 10.6 Snow Leopardではどこに$PATHが設定されているのか?

コマンドラインでecho $PATHと入力すると

/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin

と出てくるのですが、私の.bash_loginのファイルが空っぽなので、どこで設定されているのか気になります。

特に気になるのは、MacPortsをインストールした後、/optにジャンク品を大量にインストールしてしまったことです。通常のMac OS Xのインストールでは、そのディレクトリは存在しないと思います。

Update: 私のecho $PATHの記述を修正してくれた jtimberman に感謝します。

回答 (7)

161
161
161
2009-11-11 20:57:32 +0000

bashが起動すると、ログインするたびに以下のファイルを読み込みます。OS X の場合、これは新しい Terminal ウィンドウを開くたびに読み込まれることを意味します。

/etc/profile
~/.bash_profile
~/.bash_login (if .bash_profile does not exist)
~/.profile (if .bash_login does not exist)

コマンドラインでbashと入力して新しいシェルを起動すると、.bashrc

OS Xはまた、 ~/.MacOSX/environment.plist を使用して、必要に応じてパスを含むより多くの環境変数を設定します。

最後に、/etc/paths/etc/paths.d はシェルからも読み込まれます。


/opt/local/bin などは、MacPortsによって~/.tcshrcに追加されています。また、~/.cshrcにも注目してください。

25
25
25
2011-03-25 18:07:37 +0000

真面目な話、Leopardがパスの追加方法を教えてくれました。追加したいパス部分を含むファイルを作成して、/etc/paths.d

これを1ステップで行う簡単な例を紹介します。

echo "/some/path/to/add" >> /etc/paths.d/somefilename

それ以外の場合は、/etc/paths.d に移動して直接そこにファイルを置くことができます。いずれにしても、そのディレクトリ内のファイルのパス部分はデフォルトパスに追加されます。

これは manpath にも適用されます。

ここに詳細へのリンクがあります。 ars technica: how do i add something to PATH in snow leopard?

2つ目の注意点: MacPortsはすべてのファイルをoptディレクトリに入れます。そうすれば競合しません。彼らのガイドには、なぜoptを使うのか、デフォルトを変更したい場合はどうすればいいのかが説明されています。 MacPorts Guide

4
4
4
2009-11-11 19:07:28 +0000

パスを表示するには、エコーで $PATH を指定します。

echo $PATH

パスを設定するには、~/.bash_profile ではなく ~/.bash_login を編集します。

3
3
3
2012-02-07 19:36:18 +0000

また、sshで決定されたパスもあります。

echo $PATHと比較してみてください。ssh は /etc/profile を読み込まないので、/usr/libexec/pathhelper は実行されず、/etc/paths はスキップされます。次に ssh localhost 'echo $PATH' を試してみてください。パスが近くなるはずです。残りの違いは、おそらく .bashprofile (これも ssh でスキップされます) と .bashrc (これも ssh で読み込まれます) のパスの変更によるものでしょう。

ssh のパスを通常のターミナルのパスと同じようにしたい場合は、 .bashrc に ssh localhost 'source /etc/profile; echo $PATH' を追加してください。

2
2
2
2013-06-01 09:50:21 +0000

どちらかに定義されている可能性があります。

  • システム変数 - /etc/paths
  • ユーザ変数 - @Steve Folly の説明を参照してください。
1
1
1
2009-11-11 19:13:39 +0000

実際には、.profileの代わりに.bash_loginファイルに保存されており、MacPortsが.bash_loginファイルの代わりにこれを使用するのが一般的です。

また /opt ディレクトリは通常 MacPorts によって作成され、そのファイルはこのフォルダに保存されます。

1
1
1
2012-06-26 01:40:17 +0000

/usr/libexec/path_helperユーティリティの docs については、$PATHの初期コンポーネントが/etc/pathsから取り出されており、OS-X Snow Leopardの場合は

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

のようになっています。