web-dev-qa-db-ja.com

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インストールにさえ存在するとは思わない。

更新:私のecho $PATHステートメントを修正してくれた jtimberman に感謝

135
Andrew

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を見てください。

157
Steve Folly

/etc/pathsによって使用される/usr/libexec/path_helperによって使用されるファイル/etc/profileを見てください。

MacPortsの場合は、Sudo /etc/paths/opt/local/binを使用してターミナルウィンドウを開きます。

47
Jim Logan

真剣に、Leopardは私達に道を加える新しい方法を与えた。追加したいパス部分を含むファイルを作成して/etc/paths.dに置くだけです。

これをワンステップで行う簡単な例は次のとおりです。

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

そうでなければ、/etc/paths.dに行き、そこにファイルを直接置くことができます。どちらの方法でも、そのディレクトリ内のファイル内のパス部分はすべてデフォルトパスに追加されます。

これはmanpathにも働きます。

これが詳細へのリンクです。

ars technica:Snow LeopardのPATHに何か追加するにはどうすればいいですか?

2番目のメモ:MacPortsは、Appleのものでは使用されていないため、すべてをoptディレクトリに入れています。そうすればそれは衝突しません。彼らのガイド(見事に書かれた、BTW)はなぜそれがoptを使うのか、そしてあなたが望むならそのデフォルトを変更する方法についての説明を持っています。

MacPortsガイド

25
leanne

あなたのパスを表示するには、$ PATHをエコーし​​てください。

echo $PATH

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

4
jtimberman

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のパスを通常の端末のパスと同じにしたい場合は、source /etc/profileを.bashrcに追加します。

3
Keith Bentrup

次のいずれかで定義できます。

  • システム変数 - /etc/paths
  • ユーザー変数 - @Steve Follyの説明を参照
2
ericn

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

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

1
ricbax

/usr/libexec/path_helperユーティリティの docs に関して、$ PATHの初期コンポーネントは/etc/pathsから取得され、デフォルトでは次のようになります。

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

oS-X Snow Leopard用

1
A B