Soweit ich brew
weiß /usr/local/bin
, kollidiert (hat den gleichen Namen wie) nichts in einer von Apple verteilten ausführbaren Datei. Daher sollte das /usr/local/bin
im Weg haben /bin
und /usr/bin
kein Thema sein, da es keine Namenskollisionen geben sollte. * Beachten Sie jedoch die Probleme mit ls
und tar
und die Verwendung anderer Paketaggregatoren wie fink
und port
(MacPorts) weiter unten.
Brew
Hat eines von zwei Dingen, die mir bekannt sind, dazu beigetragen, Namenskollisionen zu verwalten:
Brew
Lässt nicht verbundene Fässer im Keller. Um etwas zu installieren, belässt brew die Werkzeuge an ihrem Platz und erstellt symbolische Verknüpfungen zu diesen Werkzeugen in /usr/local/bin
. Für Tools, mit denen brew
keine Namenskollision auftreten soll, wird keine symbolische Verknüpfung erstellt.
- Für viele, wenn nicht alle Standardwerkzeuge, die sich auch in
/bin
und befinden /usr/bin
, wird brew
der Link /usr/local/bin
mit einem "g" vorangestellt, um beispielsweise eine ls
mit einem Sud durchzuführende Version zu verwenden gls
. Einfach tun , um eine ls -l
in /usr/local/bin
der verknüpften Dateien und finden - diejenigen , die sind brew
dort setzen. Hinweis: Die brew
installierten Tools, auf die mit ihren tatsächlichen Namen zugegriffen werden muss, befinden sich in /usr/local/Cellar/coreutils/8.21/libexec/gnubin
.
Ich gehe /usr/local/bin
aus zwei Gründen keinen Weg - diese Gründe stehen am Ende meiner Antwort.
Um die Namenskollisionen in Ihrem System, die Verwendung zu bewerten brew doctor
und zu diesem Abschnitt finden - Hier ist die brew doctor
‚s Ausgabe von Interesse:
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
Der Grund, warum ich die brew
Tools nicht an erster Stelle stelle , ist, dass die brew
installierte ls
und die tar
Befehle die Dateisystem-ACL nicht richtig handhaben. überhaupt nicht gehandhabt . Dies ist ein GROSSES Problem, und um es zusammen mit dem damit verbundenen Problem der man
Seitenkonfiguration, das mit dem Festlegen der $PATH
richtigen Tags einhergeht, zu vermeiden , stelle ich sicher, dass die OSX
zugehörigen Tools, insbesondere die in /bin
und enthaltenen /usr/bin
, an erster Stelle stehen.
Ein weiterer Grund, warum ich mich überhaupt nicht /usr/local/bin
in den Weg gestellt habe, ist, dass ich brew
nicht gut mit anderen zusammen spiele fink
und port
(MacPorts) derzeit weitaus mehr unterstützte Pakete habe, die ich JETZT brauche . Zum Beispiel kann ich gnome-terminal
mit fink
, aber es wäre eine große Anstrengung sein mit einer Formel und das gleiche tun zu konstruieren brew
. Also, ich halte /sw
und /opt
bei meiner Suche $PATH
(für fink
und port
, respectively) und Referenz Dinge , die ich aus /usr/local/bin
, einschließlich gnat
, entweder buchstabierte, oder ich bash
alias
‚s, oder ich eine Quelle - setup
Datei für eine ganz andere Umgebung , wenn ich schreibe Ada
Code.
Die Sache ist, es hängt wirklich davon ab, was Sie zu der Zeit wollen und brauchen.
Hier ist ein Beispiel für das oben erwähnte ACL-Problem.
Mit den Standardwerkzeugen OSX
:
$ /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
und mit den brew
installierten Tools:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
und
$ /usr/local/bin/gls --help | grep -i acl
Sie erhalten ähnliche Ergebnisse mit tar
und ich kenne nicht viele andere brew
Tools, aber wer kann es sich leisten, dass 6 Monate später etwas kaputt geht, wegen eines ACL
Problems!