Pelo que entendi, brewnão coloca nada /usr/local/binque colide (tem o mesmo nome que) um executável distribuído da Apple. Portanto, ter /usr/local/bino caminho antes /bine /usr/binnão deve ser um problema, porque não deve haver colisão de nomes. * No entanto, veja os problemas com lse tar, e usando outros agregadores de pacotes como finke port(MacPorts), bem abaixo.
Brew faz uma das duas coisas que conheço que ajudam a gerenciar colisões de nomes:
Brewdeixa barris não ligados na adega. Para instalar coisas, o brew deixa as ferramentas onde estão e cria links simbólicos para essas ferramentas /usr/local/bin. Para ferramentas que brewnão desejam colisão de nomes, não cria um link simbólico.
- Para muitas, se não todas as ferramentas padrão que também estão
/bine /usr/bin, brewprefixam o link /usr/local/bincom um "g", por exemplo, para executar uma lsversão com brew, use gls. Basta fazer uma ls -lno /usr/local/bine procurar os arquivos vinculados - esses são os brewcolocou lá. Nota: As brewferramentas instaladas que devem ser acessadas por seus nomes reais são encontradas em /usr/local/Cellar/coreutils/8.21/libexec/gnubin.
Eu não coloco /usr/local/binno meu caminho por duas razões - essas razões estão na parte inferior da minha resposta.
Para avaliar as colisões de nomes em seu sistema, use brew doctore procure esta seção - Aqui está o brew doctorresultado interessante:
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
A razão pela qual eu não coloco brewas ferramentas em primeiro lugar, de fato, é que não, porque os comandos brewinstalados lse tarnão lidam com a ACL do sistema de arquivos de fato, na última vez que verifiquei (que foi na semana passada), eles não estavam ' t tratado de todo . Esse é um problema GRANDE e, para evitá-lo por completo, junto com o manproblema de configuração de página associado que marca junto com a configuração $PATHcorreta, certifique-se de colocar as OSXferramentas relacionadas, especialmente as encontradas em /bine /usr/bin, primeiro.
Outra razão que eu nem sequer colocar /usr/local/binno meu caminho em tudo é porque brewnão joga bem com os outros, e finke port(MacPorts) têm forma mais pacotes no momento que eu preciso suportado EMPRESA . Por exemplo, eu posso começar gnome-terminalcom fink, mas seria um grande esforço para construir uma fórmula e fazer o mesmo com brew. Portanto, mantenho /swe /optem minha pesquisa $PATH(por finke port, respectivamente) e as referências de que preciso /usr/local/bin, incluindo gnat, por extenso ou uso bash alias, ou forneço um setuparquivo para um ambiente totalmente diferente ao escrever Adacódigo.
A questão é que realmente depende do que você deseja e precisa no momento.
Aqui está um exemplo do problema da ACL que mencionei acima.
Com as OSXferramentas padrão :
$ /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 com as brewferramentas instaladas:
$ /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
Você obterá resultados semelhantes tare eu não conheço muitas outras brewferramentas, mas quem pode se dar ao luxo de ter algo quebrado 6 meses depois por causa de um ACLproblema!