OS X用の一般的なことを行うbashスクリプトを作成するとき、それらを保持するのに適した場所はどこかと思います。それらをすべて自動的に取得する場所に配置できるディレクトリはありますか?または、独自のディレクトリを作成してから、このディレクトリを.profileなどから参照する必要がありますか?
PATHを次のように設定しています。
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
$HOME/bin
オーバーライドがデフォルトのコマンドであるコマンドには、/usr/local/bin
を使用します。たとえば、Subversion 1.7.7がインストールされており、OS Xには1.6.18が付属しています。 svn
のバージョン1.7.7は/usr/local/bin
にありますが、svn
のデフォルトの1.6.18バージョンは/usr/bin
にあります。 svn
と入力すると、OS Xに付属するバージョンではなく、インストールしたバージョンが取得されます。Java、Git、Python、および別のバージョンが必要な他のいくつかのバイナリでこれを実行しました私のMacに来ました。これらのほとんどはシンボリックリンクです。例えば:
$ ls -l /usr/local/bin/ant
lrwxr-xr-x 1 root wheel 16 Jun 12 11:01 ant -> /opt/ant/bin/ant
Ant 1.9.1は/opt/ant
(実際には/opt/Apache-ant-1.9.1
にインストールされますが、/opt/ant
にシンボリックにリンクされます)。 /opt/ant/bin
の下のすべてのものを/usr/local/bin
にリンクしたので、それは私のパスにあります。
個人用のシェルスクリプトやその他のスクリプトに$HOME/bin
を使用します。伝統的に、これをPATHの最後のエントリにするので、組み込みコマンドを誤ってオーバーライドすることはありません。 cp
というシェルスクリプトコマンドを作成した場合、/bin/cp
コマンドをオーバーライドしません。
自分で作成した実行可能ファイルとスクリプトには~/bin
を使用し、自分では作成しなかった実行可能ファイルとスクリプトには/usr/local/bin
を使用します。
/usr/local/bin
は、Homebrew、pip
(およびHomebrewによってインストールされたgem
およびnpm
)、make install
のデフォルトのターゲット、および一部の.pkg
インストーラー。
以前は、自分で作成したのではなく、デフォルトで/usr/local/bin
に配置されていなかった実行可能ファイルとスクリプト用に別のディレクトリを用意していました。しかし、ファイルが非常に少ないため、その中のすべてのファイルを/usr/local/bin
に移動しました。
/usr/local/bin
でfind /usr/local/bin ! -lname '../Cellar/*'
にHomebrew以外のものを見つけることができます。
/usr/local/bin
には既に約1000個の他のファイルが含まれており、/usr/local/bin
(またはbin
)を入力する方が簡単なので、私は自分で書いたスクリプトに~/bin
を使用しません。
setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
を/etc/launchd.conf
に追加しました。他のディレクトリの前に/usr/local/bin
を置くことは潜在的に危険であり、たとえば一部のTextMateコマンドはそのために動作を停止しましたが、システムにインストールされたバージョンの前にコマンドの新しいバージョンを持ち、どこでも同じパスを使用することも便利です。