A instalação do git pelo Homebrew não terá precedência sobre a versão do sistema (em / usr / bin /)

10

O OS X (ou Xcode) vem junto com o git 1.7.something, mas depois de brew install git (1.8.0), which git continua retornando o antigo /usr/bin/git .

Isso é o que recebo quando faço eco do $ PATH agora:

/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

As coisas do Homebrew não deveriam ter precedência?

Além disso, não faço ideia de onde vem usr/local/git/bin no final.

    
por o_o_o-- 03.11.2012 / 02:32

3 respostas

7

Entendi. A resposta está na sua pergunta; brew instala o git em /usr/local/git/bin (não /usr/local/bin ), mas como isso é depois de /usr/bin em seu caminho, você obtém esse primeiro. Meu comentário para which -a git deveria ter apontado você nessa direção.

    
por 03.11.2012 / 03:09
3

Também encontrei este problema.

Depois de instalar o git pelo homebrew, se você executar brew doctor , ele avisará que, como Joe mencionou acima, o sistema está executando o git antigo porque o local de instalação é o primeiro.

Mas, no mesmo aviso, o homebrew dá o código para corrigir:

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
    
por 16.05.2014 / 08:20
0

Faz parte dos meus hábitos Unix ter um diretório ~/bin , que coloquei no início do meu PATH . Este é um dos primeiros bits no meu .bashrc :

case ":$PATH:" in
  *:$HOME/bin:*) ;;     # do nothing if $PATH already contains $HOME/bin
  *) PATH=$HOME/bin:$PATH ;;  # in every other case, add it to the front
esac

Com isso em vigor, então, seletivamente, apenas o git gerenciado pelo Homebrew tem precedência sobre a versão do sistema (em vez de todo binário gerenciado pelo Homebrew), e apenas para as sessões do shell de todos programas iniciados de qualquer lugar, incluindo programas GUI), é tão simples quanto criar links simbólicos:

ln -s /usr/local/bin/git ~/bin/git
    
por 10.04.2013 / 01:26