Según tengo entendido, brew
no pone nada en /usr/local/bin
eso que colisiona (tiene el mismo nombre que) un ejecutable distribuido de Apple. Por lo tanto, tener /usr/local/bin
en el camino antes /bin
y /usr/bin
no debería ser un problema, porque no debería haber colisiones de nombres. * Sin embargo, vea los problemas con ls
y tar
, y el uso de otros agregadores de paquetes como fink
y port
(MacPorts), a continuación.
Brew
hace una de las dos cosas que sé que ayudan a administrar las colisiones de nombres:
Brew
deja barriles desvinculados en la bodega. Para instalar cosas, brew deja las herramientas donde están y crea enlaces simbólicos a esas herramientas /usr/local/bin
. Para las herramientas que brew
no desean una colisión de nombres, no crea un enlace simbólico.
- Para muchas, si no todas, las herramientas estándar que también se encuentran en
/bin
y /usr/bin
, brew
prefijan el enlace /usr/local/bin
con una "g", por ejemplo, para realizar una ls
versión en brew, use gls
. Basta con hacer una ls -l
en /usr/local/bin
y buscar los archivos vinculados - esos son los que brew
ponen allí. Nota: Las brew
herramientas instaladas a las que deben acceder sus nombres reales se encuentran en /usr/local/Cellar/coreutils/8.21/libexec/gnubin
.
No pongo /usr/local/bin
en mi camino por dos razones: esas razones están al final de mi respuesta.
Para evaluar las colisiones de nombres en su sistema, use brew doctor
y busque esta sección: aquí está el brew doctor
resultado de interés:
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 razón por la que no pongo brew
las herramientas primero, de hecho, no es porque los brew
instalados ls
y los tar
comandos no manejan el sistema de archivos ACL correctamente, de hecho, la última vez que revisé (que fue la semana pasada), no estaban t manejado en absoluto . Este es un GRAN problema, y para evitarlo por completo, junto con el man
problema de configuración de página asociado que etiqueta junto con la configuración $PATH
correcta, me aseguro de poner las OSX
herramientas relacionadas, especialmente las que se encuentran /bin
y /usr/bin
, primero.
Otra razón por la que ni siquiera pongo /usr/local/bin
en mi camino es porque brew
no juega bien con los demás, fink
y port
(MacPorts) tiene paquetes mucho más compatibles actualmente que los que necesito AHORA . Por ejemplo, yo puedo conseguir gnome-terminal
con fink
, pero sería un gran esfuerzo para construir una fórmula y hacer lo mismo con brew
. Por lo tanto, mantengo /sw
y /opt
en mi búsqueda $PATH
(para fink
y port
, respectivamente) y referencias de cosas que necesito /usr/local/bin
, incluyendo gnat
, deletreado, o uso bash
alias
's, o obtengo un setup
archivo para un entorno completamente diferente cuando escribo Ada
código.
La cuestión es que realmente depende de lo que quieras y necesites en ese momento.
Aquí hay un ejemplo del problema de ACL que mencioné anteriormente.
Con las OSX
herramientas estándar :
$ /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
y con las brew
herramientas instaladas:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
y
$ /usr/local/bin/gls --help | grep -i acl
Obtendrá resultados similares tar
y no conozco muchas otras brew
herramientas, ¡pero quién puede darse el lujo de que algo se rompa en 6 meses debido a un ACL
problema!