自作のgitのインストールは、システムバージョン(/ usr / bin /内)よりも優先されません。


10

OS X(またはXcode)にはgit 1.7.somethingがバンドルされていますが、brew install git(1.8.0)以降which git、古いを返し続け/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

Homebrewのものを優先すべきではありませんか?

また、それがusr/local/git/bin最後にどこから来るのかもわかりません。


gitが実際に/ usr / local / binにあることを確認しましたか?
Joe Bane、2012年

うん。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して、それがまったく見つからないかどうかを確認します。
Joe Bane

回答:


7

とった。答えはあなたの質問にあります。brewは/usr/local/git/bin(ではなく/usr/local/bin)にgitをインストール/usr/binしますが、パスの後にあるため、最初にそれを取得します。に対する私のコメントは、which -a gitあなたをこの方向に向けるべきでした。


1
ls -l /usr/local/bin/gitあまりにも実行します。私はそれがへのシンボリックリンクであるに違いない/usr/bin/git
Joe Bane、2012年

ああ、それ/usr/local/git/binは公式のインストーラーも置くところだと思われます。
Joe Bane、2012年

あなたは見なければならない/etc/paths/etc/paths.dうまくとして。
Joe Bane、2012年

1
ここに興味深いイベントの順番がありwhich -a gitます/usr/local/bin/git; /usr/bin/git; /usr/local/bin/git。だから私は古いgitの名前を変更しusr/bin/git_oldて邪魔にならないようにしました。これでgit --version1.8が返され、brewがgitを正常にインストールしたことが証明されます。-繰り返しますが、/usr/bin/git元の名前に変更しました...突然、正常に機能します!理由や方法はわかりませんが、/usr/bin/gitgitの名前を変更して実行すると、問題が解決したようです。問題の根本が何であったか誰が知っています。とにかくありがとう:)
o_o_o--

それは変だ。少なくとも今は正常に稼働しています。
Joe Bane、2012年

3

この問題も発生しました。

自作でgitをインストールした後、実行brew doctorすると警告が表示されます。Joeが前述したように、インストール場所が最初に来るため、システムは古いgitを実行しています。

しかし、同じ警告で、homebrewはそれを修正するコードを示しています。

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

0

~/binが自分のの最初に置いたディレクトリを持つことは、私のUnixの習慣の一部でしたPATH。これは私の最初のビットの1つです.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

場所で、その後、選択だけで自作に管理することということとgit、システムのバージョン(の代わりに引き継ぐ優先順位を、すべて自作管理のバイナリ)、およびだけ(の代わりにあなたのシェルセッションのすべての GUIプログラムを含むどこから始まったプログラム、)、ですそれをシンボリックリンクするのと同じくらい簡単です:

ln -s /usr/local/bin/git ~/bin/git
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.