macos – OS X 10.6 Snow Leopardで$PATHはどこに設定されていますか?

bash command-line macos osx-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のインストールでは、そのディレクトリは存在すらしないと思います

更新: 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を使うのか、デフォルトを変更したい場合はどうすればいいのかが説明されています

MacPorts のガイド

25  leanne  2011-03-25


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

echo $PATH

パスを設定するには、~/.bash_loginではなく~/.bash_profileを編集してください

4  jtimberman  2009-11-11


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

echo $PATHssh 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


タイトルとURLをコピーしました