Zoals ik het begrijp, zet brew niets in /usr/local/bin dat botst (dezelfde naam heeft als) een door Apple gedistribueerd uitvoerbaar bestand. Daarom zou het hebben van /usr/local/bin in het pad voor /bin en /usr/bin geen probleem moeten zijn, omdat er geen naamsconflicten zouden moeten zijn. *Zie echter de problemen met ls en tar, en het gebruik van andere package aggregators zoals fink en port (MacPorts), hieronder.
Brew doet een van de twee dingen die ik ken die helpen bij het beheren van naamsconflicten:
Brew laat ongelinkte vaatjes in de Kelder. Om dingen te installeren, laat brew de gereedschappen waar ze zijn, en maakt symbolische links naar die gereedschappen in /usr/local/bin. Voor gereedschappen waar brew geen naamsconflict mee wil, maakt het geen symbolische link.
- Voor veel, zo niet alle, standaardgereedschappen die ook in
/bin en /usr/bin zitten, plaatst brew een “g” voor de link in /usr/local/bin, dus om bijvoorbeeld een ls uit te voeren met een brouwversie, gebruik gls. Doe eenvoudig een ls -l in /usr/local/bin en zoek naar de gelinkte bestanden - dat zijn degene die brew daar neerzet. Opmerking: De brew geïnstalleerde gereedschappen die met hun echte naam benaderd moeten worden, staan in /usr/local/Cellar/coreutils/8.21/libexec/gnubin.
Ik zet /usr/local/bin niet in mijn pad om twee redenen - die redenen staan onderaan mijn antwoord.
Om de naambotsingen in je systeem te beoordelen, gebruik je brew doctor en zoek je naar deze sectie - Hier is de uitvoer van brew doctor van belang:
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
De reden waarom ik brew‘s tools niet op de eerste plaats zet, in feite helemaal niet, is omdat de brew geïnstalleerde ls en tar commando’s de bestandssysteem ACL niet goed afhandelen, in feite, de laatste keer dat ik controleerde (en dat was vorige week), werd er helemaal niet mee omgegaan. Dit is een GROOT probleem, en om het helemaal te vermijden, samen met het geassocieerde man pagina configuratie probleem dat gepaard gaat met het juist instellen van de $PATH, zorg ik ervoor dat ik de OSX gerelateerde tools, vooral die in /bin en /usr/bin, eerst zet.
Een andere reden waarom ik /usr/local/bin helemaal niet in mijn pad zet is omdat brew niet goed samenwerkt met anderen, en fink en port (MacPorts) hebben op dit moment veel meer ondersteunde pakketten die ik NOW nodig heb. Ik kan bijvoorbeeld gnome-terminal krijgen met fink, maar het zou een grote moeite zijn om een formule te construeren en hetzelfde te doen met brew. Dus, ik houd /sw en /opt in mijn zoek $PATH (voor fink en port, respectievelijk) en verwijs naar dingen die ik nodig heb van /usr/local/bin, inclusief gnat, ofwel gespeld, of ik gebruik bash alias’s, of ik source een setup bestand voor een geheel andere omgeving wanneer ik Ada code schrijf.
Het ding is, het hangt echt af van wat je wilt en nodig hebt op het moment.
Hier is een voorbeeld van het ACL probleem dat ik hierboven noemde.
Met de standaard OSX tools:
$ /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
en met de brew geïnstalleerde tools:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
en
$ /usr/local/bin/gls --help | grep -i acl
Je zult vergelijkbare resultaten krijgen met tar en ik ken niet veel andere brew tools, maar wie kan het zich veroorloven om 6 maanden later iets kapot te laten gaan door een ACL probleem!