การติดตั้ง Homebrew ของ 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มาจากท้ายที่สุด


คุณตรวจสอบแล้วว่าคอมไพล์เป็นจริงใน / usr / local / bin หรือไม่
Joe Bane

อ๋อ ls /usr/local/binแสดงให้เห็นว่าgitมี Brew ยังยืนยันว่าได้ติดตั้งแล้ว ฉันยังวิ่งถอนการติดตั้งคอมไพล์ (ทั้งโดยการbrew uninstallและการใช้อย่างใดอย่างหนึ่งที่มาพร้อมกับการดาวน์โหลดอย่างเป็นทางการของคอมไพล์) และ brew install gitRedid which git = = /usr/bin/git"ฉันให้ได้รับ
o_o_o--

2
เรียกใช้which -a gitเพื่อดูว่ามันค้นหาทั้งหมดหรือไม่
Joe Bane

คำตอบ:


7

เข้าใจแล้ว คำตอบคือคำถามของคุณ ชงติดตั้งคอมไพล์ไปที่/usr/local/git/bin(ไม่/usr/local/bin) แต่เนื่องจากหลังจากนั้น/usr/binในเส้นทางของคุณคุณจะได้รับหนึ่งก่อน ความคิดเห็นของฉันสำหรับwhich -a gitควรชี้คุณในทิศทางนี้


1
ทำงานls -l /usr/local/bin/gitด้วย ฉันเดิมพันมันเป็น symbolic link /usr/bin/gitไป
Joe Bane

โอ้และ/usr/local/git/binดูเหมือนจะเป็นที่ที่ผู้ติดตั้งอย่างเป็นทางการวางไว้ด้วย
Joe Bane

คุณควรดู/etc/pathsและ/etc/paths.dเช่นกัน
Joe Bane

1
ที่นี่เป็นที่น่าสนใจของการเปิดเหตุการณ์: ผลตอบแทนwhich -a git /usr/local/bin/git; /usr/bin/git; /usr/local/bin/gitดังนั้นฉันจึงเปลี่ยนชื่อคอมไพล์เก่าusr/bin/git_oldและนำออกไปให้พ้นทาง ตอนนี้git --versionส่งกลับ 1.8, การพิสูจน์ว่าการชงติดตั้ง git สำเร็จ - อีกครั้งฉันเปลี่ยนชื่อเป็นชื่อ/usr/bin/gitเดิม ... และทันใดนั้นมันก็ทำงานได้อย่างถูกต้อง! ฉันไม่รู้ว่าทำไมหรืออย่างไร แต่การเปลี่ยนชื่อ/usr/bin/gitและเรียกใช้คอมไพล์ครั้งหนึ่งดูเหมือนว่าจะแก้ปัญหาได้แล้ว ใครจะรู้ว่ารากของปัญหาคือใคร ขอขอบคุณ :)
o_o_o--

นั่นคือ ... แปลก ดีใจที่คุณใช้งานได้อย่างน้อยตอนนี้
Joe Bane

3

ฉันยังพบปัญหานี้

หลังจากติดตั้ง git ผ่าน homebrew แล้วถ้าคุณเรียกใช้brew doctorมันจะเตือนคุณว่าดังที่ Joe ได้กล่าวไว้ข้างต้นระบบกำลังใช้งานคอมไพล์เก่าเนื่องจากตำแหน่งการติดตั้งนั้นมาก่อน

แต่ในคำเตือนเดียวกัน homebrew ให้รหัสเพื่อแก้ไข:

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

0

มันเป็นส่วนหนึ่งของนิสัยยูนิกซ์ของฉันจะมีไดเรกทอรีที่ฉันใส่ในช่วงเริ่มต้นของฉัน~/bin 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 ทุกตัว) และสำหรับเชลล์เซสชันของคุณ (แทนที่จะเป็นโปรแกรมทั้งหมดที่เริ่มต้นจากที่ใดก็ได้รวมถึงโปรแกรม GUI) คือ ง่ายเหมือนการเชื่อมโยง:

ln -s /usr/local/bin/git ~/bin/git
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.