Soweit ich brewweiß /usr/local/bin, kollidiert (hat den gleichen Namen wie) nichts in einer von Apple verteilten ausführbaren Datei. Daher sollte das /usr/local/binim Weg haben /binund /usr/binkein Thema sein, da es keine Namenskollisionen geben sollte. * Beachten Sie jedoch die Probleme mit lsund tarund die Verwendung anderer Paketaggregatoren wie finkund port(MacPorts) weiter unten.
Brew Hat eines von zwei Dingen, die mir bekannt sind, dazu beigetragen, Namenskollisionen zu verwalten:
BrewLä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 brewkeine Namenskollision auftreten soll, wird keine symbolische Verknüpfung erstellt.
- Für viele, wenn nicht alle Standardwerkzeuge, die sich auch in
/binund befinden /usr/bin, wird brewder Link /usr/local/binmit einem "g" vorangestellt, um beispielsweise eine lsmit einem Sud durchzuführende Version zu verwenden gls. Einfach tun , um eine ls -lin /usr/local/binder verknüpften Dateien und finden - diejenigen , die sind brewdort setzen. Hinweis: Die brewinstallierten 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/binaus zwei Gründen keinen Weg - diese Gründe stehen am Ende meiner Antwort.
Um die Namenskollisionen in Ihrem System, die Verwendung zu bewerten brew doctorund 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 brewTools nicht an erster Stelle stelle , ist, dass die brewinstallierte lsund die tarBefehle die Dateisystem-ACL nicht richtig handhaben. überhaupt nicht gehandhabt . Dies ist ein GROSSES Problem, und um es zusammen mit dem damit verbundenen Problem der manSeitenkonfiguration, das mit dem Festlegen der $PATHrichtigen Tags einhergeht, zu vermeiden , stelle ich sicher, dass die OSXzugehörigen Tools, insbesondere die in /binund enthaltenen /usr/bin, an erster Stelle stehen.
Ein weiterer Grund, warum ich mich überhaupt nicht /usr/local/binin den Weg gestellt habe, ist, dass ich brewnicht gut mit anderen zusammen spiele finkund port(MacPorts) derzeit weitaus mehr unterstützte Pakete habe, die ich JETZT brauche . Zum Beispiel kann ich gnome-terminalmit fink, aber es wäre eine große Anstrengung sein mit einer Formel und das gleiche tun zu konstruieren brew. Also, ich halte /swund /optbei meiner Suche $PATH(für finkund 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 - setupDatei für eine ganz andere Umgebung , wenn ich schreibe AdaCode.
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 brewinstallierten 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 tarund ich kenne nicht viele andere brewTools, aber wer kann es sich leisten, dass 6 Monate später etwas kaputt geht, wegen eines ACLProblems!