A quanto ho capito, brewnon inserisce nulla in /usr/local/bincui si scontra (ha lo stesso nome di) un eseguibile distribuito da Apple. Pertanto, avere /usr/local/binnel percorso prima /bine /usr/binnon dovrebbe essere un problema, perché non dovrebbero esserci collisioni di nomi. * Tuttavia, vedi i problemi con lse tar, e usando altri aggregatori di pacchetti come finke port(MacPorts), molto sotto.
Brew fa una delle due cose che conosco che aiutano a gestire le collisioni di nomi:
Brewlascia fusti non collegati nella Cantina. Per installare roba, brew lascia gli strumenti dove sono e crea collegamenti simbolici a quegli strumenti /usr/local/bin. Per gli strumenti che brewnon vogliono una collisione del nome, non crea un collegamento simbolico.
- Per molti, se non tutti, gli strumenti standard che sono anche in
/bine /usr/bin, brewantepongono il collegamento /usr/local/bincon una "g", quindi ad esempio per eseguire una lsversione brew, utilizzare gls. Basta fare un ls -lin /usr/local/bine cercare i file collegati: quelli sono quelli brewmessi lì. Nota: gli brewstrumenti installati a cui è necessario accedere con i loro nomi reali si trovano in /usr/local/Cellar/coreutils/8.21/libexec/gnubin.
Non metto la /usr/local/binmia strada per due ragioni: quelle ragioni sono in fondo alla mia risposta.
Per valutare le collisioni di nomi nel tuo sistema, usa brew doctore cerca questa sezione - Ecco l' brew doctoroutput di 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
Il motivo per cui non metto brewprima gli strumenti, in realtà, per niente, è perché i comandi brewinstallati lse tarnon gestiscono correttamente il file system ACL, infatti l'ultima volta che ho controllato (che era la scorsa settimana), non lo erano " t gestito a tutti . Questo è un GRANDE problema, e per evitarlo del tutto, insieme al manproblema di configurazione della pagina associato che tagga insieme all'impostazione del $PATHgiusto, mi assicuro di mettere gli OSXstrumenti correlati, specialmente quelli trovati in /bine /usr/bin, prima.
Un altro motivo per cui non ho nemmeno messo /usr/local/binsul mio percorso è perché brewnon gioca bene con gli altri e finke port(MacPorts) hanno attualmente molti più pacchetti supportati di cui ho bisogno ADESSO . Per esempio, posso ottenere gnome-terminalcon fink, ma sarebbe un grande sforzo per costruire una formula e fare lo stesso con brew. Quindi, conservo /swe /optnella mia ricerca $PATH( rispettivamente per finke port, rispettivamente) e riferimento alle cose di cui ho bisogno /usr/local/bin, tra cui gnat, sia esplicitato, o uso bash aliasdi, o fonte un setupfile per un ambiente completamente diverso quando scrivo il Adacodice.
Il fatto è che dipende davvero da cosa vuoi e di cui hai bisogno in quel momento.
Ecco un esempio del problema ACL che ho menzionato sopra.
Con gli OSXstrumenti standard :
$ /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
e con gli brewstrumenti installati:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
e
$ /usr/local/bin/gls --help | grep -i acl
Otterrai risultati simili con tare non conosco molti altri brewstrumenti a casa, ma chi può permettersi di fare qualcosa per 6 mesi lungo la strada a causa di un ACLproblema!