git的Homebrew安装不会优先于系统版本(在/ usr / bin /中)


10

OS X(或Xcode)与git 1.7.something捆绑在一起,但在brew install git(1.8.0)之后,which git始终返回old /usr/bin/git

这是我现在回显$ PATH时得到的:

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

自制的东西不应该优先吗?

另外,我不知道这usr/local/git/bin到底是哪里来的。


您是否已验证git实际上在/ usr / local / bin中?
乔·贝恩

是的 ls /usr/local/bin表演git在那里。Brew还确认已安装。我什至运行了git卸载程序(都brew uninstall使用了官方git下载随附的一个)并进行了redid brew install git。我不断which git = = /usr/bin/git"
o_o_o-- 2012年

2
运行which -a git以查看是否找到它。
乔·贝恩

Answers:


7

得到它了。答案就在您的问题中;brew将git安装到/usr/local/git/bin(不是/usr/local/bin),但是由于那是/usr/bin您的路径之后的内容,因此您首先要安装它。我的评论which -a git应该已经向您指出了这一方向。


1
运行ls -l /usr/local/bin/git了。我敢打赌这是的符号链接/usr/bin/git
乔·贝恩

哦,/usr/local/git/bin似乎也是官方安装程序放置的位置。
乔·贝恩

你应该看看/etc/paths,并/etc/paths.d为好。
乔·贝恩

1
这是一个有趣的事件:which -a gitreturn /usr/local/bin/git; /usr/bin/git; /usr/local/bin/git。因此,我重命名了旧的git usr/bin/git_old并将其删除。现在git --version返回1.8,证明brew确实成功安装了git。-再一次,我/usr/bin/git将其重命名为原始名称...突然工作正常!我不知道为什么或如何,但是/usr/bin/git一次重命名和运行git似乎已经解决了问题。谁知道问题的根源是什么。无论如何,谢谢:)
o_o_o-- 2012年

真奇怪 很高兴您现在至少已开始运作。
乔·贝恩

3

我也遇到了这个问题。

通过自制程序安装git后,如果运行brew doctor,它将警告您,正如上文中Joe所述,系统正在运行旧git,因为其安装位置排在第一位。

但是,在同样的警告中,自制软件提供了修复它的代码:

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

0

在我的Unix ~/bin开头放置目录是我的Unix习惯的一部分PATH。这是我的第一批内容之一.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

有了它,然后选择性地使仅由Homebrew管理的git优先于系统版本(而不是每个由 Homebrew管理的二进制文件),并且仅对于您的Shell会话(而不是从任何地方启动的所有程序,包括GUI程序),像链接一样简单:

ln -s /usr/local/bin/git ~/bin/git
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.