コマンドラインで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のインストールでは、そのディレクトリは存在すらしないと思います
更新: jtimbermanさん、私のecho $PATH
文を訂正してくれてありがとうございます
143 Andrew 2009-11-11
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
にも注目してください
163 Steve Folly 2009-11-11
/etc/paths
が使用しているファイル/usr/libexec/path_helper
が使用しているファイル/etc/profile
を見てみましょう
MacPortsの場合は、sudo /etc/paths/opt/local/bin
を使用してターミナルウィンドウを開き直します
49 None 2009-12-30
真面目な話、Leopardがパスの追加方法を教えてくれました。追加したいパス部分を含むファイルを作成して、/etc/paths.d に置くだけ
1ステップで行う簡単な例としては
echo "/some/path/to/add" >> /etc/paths.d/somefilename
そうでなければ、/etc/paths.d に行って直接そこにファイルを置くことができます。いずれにしても、そのディレクトリ内のファイルのパス部分はデフォルトのパスに追加されます
これはマンパスにも有効です
詳細はこちらにリンクしています
ars technica: snow leopard で PATH に何かを追加するには?
2つ目の注意点: MacPortsは、Appleのものでは使用されないため、すべてのものを正確にoptディレクトリに入れています。そうすれば衝突しません。彼らのガイドには、なぜoptを使うのか、デフォルトを変更したい場合はどうすればいいのかが説明されています
25 leanne 2011-03-25
パスを表示するには、エコーで $PATH を指定します
echo $PATH
パスを設定するには、~/.bash_login
ではなく~/.bash_profile
を編集してください
4 jtimberman 2009-11-11
sshで決定されたパスもあります
echo $PATH
とssh localhost 'echo $PATH'
を比較してみてください。ssh は /etc/profile を読まないので、/usr/libexec/path_helper は実行されず、/etc/paths はスキップされます。次に ssh localhost 'source /etc/profile; echo $PATH'
を試してみてください。パスが近くなるはずです。残りの違いは、おそらく .bash_profile (これも ssh でスキップされます) と .bashrc (これも ssh で読み込まれます) のパスが変更されたことによるものでしょう
ssh のパスを通常のターミナルのパスと同じようにしたい場合は、.bashrc に source /etc/profile
を追加します
4 Keith Bentrup 2012-02-07
どちらかで定義することができます
- システム変数 –
/etc/paths
- ユーザー変数 – @Steve Folly の説明を参照してください
2 ericn 2013-06-01
実際には、.bash_login
ファイルの代わりに.profile
ファイルに保存されており、MacPortsでは.bash_login
ファイルの代わりにこれを使用するのが一般的です
また、/opt
ディレクトリは通常MacPortsによって作成され、そのファイルはこのフォルダに保存されます
1 ricbax 2009-11-11
docsについては、/usr/libexec/path_helper
ユーティリティの$PATHの初期コンポーネントは/etc/paths
から取得したもので、デフォルトでは以下のようになっています
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
OS-X Snow Leopard用
1 A B 2012-06-26