Si je comprends bien, brew
rien ne se met dans ce /usr/local/bin
qui entre en collision (a le même nom que) un exécutable distribué Apple. Par conséquent, avoir /usr/local/bin
dans le chemin auparavant /bin
et /usr/bin
ne devrait pas être un problème, car il ne devrait y avoir aucune collision de noms. * Cependant, voyez les problèmes avec ls
et tar
, et utilisez d'autres agrégateurs de paquetages comme fink
et port
(MacPorts), de manière plus détaillée.
Brew
Est-ce que l'une des deux choses que je connais qui aide à gérer les collisions de noms:
Brew
laisse des fûts non liés dans la cave. Pour installer des éléments, brasser laisse les outils là où ils sont et crée des liens symboliques vers ces outils dans /usr/local/bin
. Pour les outils qui brew
ne veulent pas de conflit de nom, cela ne crée pas de lien symbolique.
- Pour la plupart des outils standard qui sont aussi dans
/bin
et /usr/bin
, brew
préfixe le lien /usr/local/bin
avec un "g", par exemple, pour effectuer une ls
version avec une infusion, utilisez gls
. Il suffit de faire un ls -l
dans /usr/local/bin
et recherchez les fichiers liés - ce sont ceux brew
mis là. Remarque: Les brew
outils installés auxquels il faut accéder par leur vrai nom se trouvent dans /usr/local/Cellar/coreutils/8.21/libexec/gnubin
.
Je ne mets pas /usr/local/bin
sur mon chemin pour deux raisons - ces raisons sont au bas de ma réponse.
Pour évaluer les collisions de noms dans votre système, utilisez brew doctor
et recherchez cette section - Voici la brew doctor
sortie d'intérêt de:
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
La raison pour laquelle je ne mets pas d' brew
abord les outils, en fait, pas du tout, c'est parce que les commandes brew
installées ls
et tar
ne gèrent pas correctement les ACL du système de fichiers. En fait, la dernière fois que j'ai vérifié (ce qui était la semaine dernière), elles n'étaient pas t pas manipulé du tout . C’est un gros problème, et pour l’éviter complètement, ainsi que le man
problème de configuration de page associé à la balise et à la définition $PATH
correcte, je m’assure de mettre les OSX
outils associés, en particulier ceux trouvés dans /bin
et /usr/bin
, d’abord.
Une autre raison pour laquelle je ne mets même pas du tout /usr/local/bin
sur mon chemin est que je brew
ne joue pas très bien avec les autres, et fink
que port
(MacPorts) propose actuellement davantage de packages pris en charge dont j'ai besoin maintenant . Par exemple, je peux obtenir gnome-terminal
avec fink
, mais ce serait un gros effort pour construire une formule et faire la même chose avec brew
. Donc, je garde /sw
et /opt
dans ma recherche $PATH
(pour fink
et port
respectivement) et référence les éléments dont j'ai besoin /usr/local/bin
, y compris gnat
, soit épelés, soit ceux que j'utilise bash
alias
, ou je source un setup
fichier pour un environnement totalement différent lors de l'écriture de Ada
code.
Le fait est que cela dépend vraiment de ce que vous voulez et de ce dont vous avez besoin à ce moment-là.
Voici un exemple du problème ACL que j'ai mentionné ci-dessus.
Avec les OSX
outils standards :
$ /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
et avec les brew
outils installés:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
et
$ /usr/local/bin/gls --help | grep -i acl
Vous obtiendrez des résultats similaires avec tar
et je ne connais pas beaucoup d’autres brew
outils, mais qui peut se permettre d’obtenir quelque chose en moins 6 mois à cause d’un ACL
problème!