私の理解では、brewにはAppleの配布された実行ファイルと衝突する(同じ名前を持つ)ものは何も入っていません。したがって、/usr/local/bin と /usr/local/bin の前のパスに /bin を入れても、名前の衝突はないはずなので、問題にはならないはずです。*けれども、/usr/bin と ls、そして tar と fink (MacPorts) のような他のパッケージアグリゲータを使用している場合の問題を、下記の方法で参照してください。
port は、名前の衝突を管理するのに役立つ、私が知っている2つのことのうちの1つを行います。
- **
Brewは、リンクされていない樽をセラーに残します。Brewが名前の衝突を望まないツールについては、シンボリックリンクは作成されません。
- **
/usr/local/binとbrewに含まれている標準ツールの多くは、/binのリンクの前に “g "を付けているため、例えばBrewバージョンで/usr/binを実行するにはbrewを使用します。注意: 実名でアクセスしなければならない/usr/local/binのインストールされたツールは、lsの中にあります。
私が gls をパスに入れないのには、2つの理由があります。
お使いのシステムでの名前の衝突を評価するには、ls -l を使用してこのセクションを探してください - ここには、興味のある /usr/local/bin の出力があります。
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:
ctags
emacs
emacsclient
etags
ex
git
git-cvsserver
git-receive-pack
git-shell
git-upload-archive
git-upload-pack
rview
rvim
view
vim
vimdiff
vimtutor
xxd
Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
私がbrewのツールを最初に入れない理由は、実際、全く入れないのは、インストールされているbrewと/usr/local/Cellar/coreutils/8.21/libexec/gnubinコマンドがファイルシステムのACLを適切に処理していないからで、実際、私が最後にチェックした時(これは先週だった)には、全く処理されていませんでした。これは大きな問題であり、/usr/local/binを正しく設定することに伴う関連するbrew doctorページ設定の問題と一緒に、これを完全に回避するために、私はbrew doctor関連ツール、特にbrewとbrewにあるものを最初に置くようにしています。
ls をパスに入れないもう一つの理由は、tar が他のものとの相性が良くないことと、man と $PATH (MacPorts) には、私が NOW を必要としているサポートされているパッケージの数がはるかに多いからです。例えば、OSXで/binを得ることはできますが、/usr/binで同じことをするには計算式を構築するのが大変な労力になります。そこで、私は/usr/local/binとbrewを検索finkに入れておいて(それぞれportとgnome-terminalのために)、finkを含めてbrewから必要なものを参照しているのですが、/swのコードを書くときには、/optのものを綴ったり、$PATHのものを使ったり、全く別の環境用のfinkファイルをソースにしたりしています。
問題なのは、その時に何が必要で何をしたいのか、何が必要なのかにかかっているということです。
上に書いたACLの問題の例です。
標準のportツールを使用した場合:
$ /bin/ls -le /var/root | head -7
total 24
drwx------+ 3 root wheel 102 May 28 2013 Desktop
0: group:everyone deny delete
1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit
drwx------+ 6 root wheel 204 Sep 19 14:22 Documents
0: group:everyone deny delete
1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit
と/usr/local/binインストールされたツールを使用した場合:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
と
$ /usr/local/bin/gls --help | grep -i acl
あなたはgnatでも同じような結果を得ることができます。