Instalasi homebrew dari git tidak akan diutamakan daripada versi sistem (di / usr / bin /)

10

OS X (atau Xcode) dibundel dengan git 1.7.something, tetapi setelah brew install git (1.8.0), which git terus mengembalikan yang lama /usr/bin/git.

Inilah yang saya dapatkan ketika saya menggemakan $ PATH sekarang:

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

Bukankah hal-hal Homebrew harus diutamakan?

Juga, saya tidak tahu di mana itu usr/local/git/bin berasal dari pada akhirnya.

o_o_o--
sumber
Sudahkah Anda memverifikasi bahwa git sebenarnya di / usr / local / bin?
Joe Bane
ya. ls /usr/local/bin menunjukkan git disana. Brew juga mengonfirmasi bahwa itu diinstal. Saya bahkan menjalankan uninstaller git (keduanya oleh brew uninstall dan menggunakan salah satu yang datang dengan unduhan git resmi) dan redid brew install git. Saya terus mendapatkan which git = = /usr/bin/git".
o_o_o--
2
Menjalankan which -a git untuk melihat apakah itu menemukannya sama sekali.
Joe Bane

Jawaban:

7

Oke. Jawabannya ada dalam pertanyaan Anda; buat install git ke /usr/local/git/bin (tidak /usr/local/bin ) tapi karena setelah itu /usr/bin di jalan Anda, Anda mendapatkan yang pertama. Komentar saya untuk which -a git seharusnya mengarahkan Anda ke arah ini.

Joe Bane
sumber
1
Menjalankan ls -l /usr/local/bin/git terlalu. Saya yakin itu adalah tautan simbolis ke /usr/bin/git.
Joe Bane
Oh, dan /usr/local/git/bin tampaknya juga tempat yang dipasang oleh penginstal resmi.
Joe Bane
Anda harus melihat /etc/paths dan /etc/paths.d demikian juga.
Joe Bane
1
inilah pergantian acara yang menarik: which -a git kembali /usr/local/bin/git; /usr/bin/git; /usr/local/bin/git. Jadi saya mengganti nama git lama usr/bin/git_old dan berhasil menghindar. Sekarang git --version mengembalikan 1,8, membuktikan bahwa minuman itu berhasil menginstal git. - Sekali lagi, saya berganti nama /usr/bin/git ke nama aslinya ... dan tiba-tiba itu berfungsi dengan baik! Saya tidak tahu mengapa atau bagaimana, tetapi mengganti nama /usr/bin/git dan menjalankan git tampaknya telah menyelesaikan masalah. Siapa yang tahu apa akar masalahnya. Bagaimanapun, terima kasih :)
o_o_o--
Itu aneh. Senang Anda dan berjalan setidaknya sekarang.
Joe Bane
3

Saya juga mengalami masalah ini.

Setelah menginstal git melalui homebrew, jika Anda menjalankan brew doctor maka itu akan memperingatkan Anda bahwa, seperti yang disebutkan Joe di atas, sistem menjalankan git lama karena lokasi instalasinya lebih dulu.

Namun, dalam peringatan yang sama, homebrew memberikan kode untuk memperbaikinya:

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

Sudah menjadi bagian dari kebiasaan Unix saya untuk memiliki ~/bin direktori yang saya letakkan di awal PATH. Ini adalah salah satu bit pertama di blog saya .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

Dengan hal itu di tempatnya, maka selektif hanya membuat Homebrew-dikelola git lebih diutamakan daripada versi sistem (bukan setiap Biner yang dikelola oleh homebrew), dan hanya untuk sesi shell Anda (bukan semua program yang dimulai dari mana saja, termasuk program GUI), sesederhana menghubungkannya:

ln -s /usr/local/bin/git ~/bin/git
Aristotle Pagaltzis
sumber