ไม่สามารถใช้คอมไพล์ homebrew ติดตั้งได้


16

ฉันพบปัญหาแปลกจริง ๆ เมื่อฉันพยายามใช้ git เวอร์ชันล่าสุดที่ฉันเพิ่งติดตั้งผ่าน homebrew which gitกำลังชี้ให้ฉันไปที่การติดตั้ง homebrew แต่การโทรgitจะส่งคืนเวอร์ชันดั้งเดิมที่ติดตั้งด้วย OS X

ฉันตรวจสอบก่อนเพื่อดูเวอร์ชันดั้งเดิมที่ฉันเปิด

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

จากนั้นฉันไปที่ homebrew เพื่อติดตั้งเวอร์ชันล่าสุด

[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
  /usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
  /usr/local/share/git-core/contrib

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/git/2.0.0: 1324 files, 31M

ดูเหมือนว่ามันจะทำงาน! ตรวจสอบว่ามันชี้ไปที่คอมไพล์ที่ถูกต้อง

[user@home ~]$ which git
/usr/local/bin/git

ควรจะดีใช่ไหม ไม่เร็วนัก

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

แปลก. ฉันกำลังชี้ไปที่คอมไพล์ใช่ไหม?

[user@home ~]$ ls -l /usr/local/bin/git
lrwxr-xr-x  1 user  group  27 Jul  3 15:54 /usr/local/bin/git -> ../Cellar/git/2.0.0/bin/git

แน่นอนว่าดูเหมือนว่ามัน ทำงานเมื่อฉันเรียกมันด้วยตนเอง

[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0

แต่ไม่เป็น git

[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

ความคิดใด ๆ เกี่ยวกับสิ่งที่อาจทำให้เกิดสิ่งนี้?

แก้ไข: แก้ไขมัน source .bashrcซ่อมมัน. ยังสงสัยว่าทำไมwhichจะให้ผลตอบแทนที่ถูกต้องแก่ฉัน แต่มันจะไม่ถูกเรียกว่าแม้ว่าใคร ๆ ก็สามารถอธิบายได้


ไม่แน่ใจว่าสิ่งที่เป็นปัญหา $PATHแต่ดูเหมือนคุณอาจต้องการที่จะมีลักษณะที่มูลค่าปัจจุบันของ
Zev Eisenberg

3
หากคุณต้องการเห็นทุกรุ่นของ git ที่คุณติดตั้งใช้ -> ซึ่ง -a git - (ซึ่ง git เพียงแค่ให้คุณกลับเส้นทางของคนแรกที่พบในตัวแปร PATH ของคุณ) เพื่อดูเส้นทางที่คุณมีในเส้นทางของคุณทำ -> echo $ PATH
konqui

คำตอบ:


25

เชลล์รักษาแคชของพา ธ ที่พบไฟล์เรียกทำงานได้ใน$PATHตัวแปร ดังนั้นมันจึงแคช/usr/bin/gitมากกว่า/usr/local/bin/gitเพราะหลังไม่มีอยู่เมื่อเชลล์ของคุณเริ่มต้น การรันhash -rใน Bash จากเทอร์มินัลปัจจุบันของคุณจะล้างแคชนี้จากนั้นอินสแตนซ์แรกที่พบใน$PATHควรจะเป็นสิ่งที่เรียกใช้งาน


hash -rทำงานให้ฉัน
เฮฟวี่เมทัลเกียร์แข็ง

5

ฉันได้รับปัญหาเดียวกันแน่นอน นี่คือทางออกของฉัน

brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update  
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

หลังจากนั้นคุณจะทำ แต่คุณไม่สามารถที่จะเห็นการเปลี่ยนแปลงใด ๆ git --versionเมื่อคุณเรียกใช้ เพียงออกจากระบบและลงชื่อเข้าใช้git --versionอีกครั้ง


7
การเปิดหน้าต่างเทอร์มินัลใหม่ก็เพียงพอแล้ว source ~/.bash_profileอีกทางเลือกหนึ่งยังสามารถโทร
Daniel B

ขั้นตอนเหล่านี้เป็นสิ่งที่ฉันต้องการอย่างแท้จริงและพวกเขาช่วยฉันตั้งค่าระบบของฉันโดยใช้ git เวอร์ชันล่าสุด ฉันยังค้นพบสำเนาของ git อื่นที่ฉันดาวน์โหลดจาก git-scm.com ดังนั้นฉันจึงเรียกใช้สคริปต์ uninstall.sh เพื่อลบอันนั้นออก ตอนนี้ฉันทุกคนดีมากขอบคุณ Fang และ Jens!
Michael Sheaver

ขอบคุณสำหรับขั้นตอน สำหรับฉันฉันสามารถใช้ git --version โดยอัตโนมัติโดยไม่ต้องรันคำสั่ง echo ล่าสุด
Michael Fulton


-1

ปัญหาของฉันคือฉันติดตั้งแอพ Mac GitHub /usr/local/bin/gitกำลังชี้ไปที่เวอร์ชันของแอป git ไม่ใช่เวอร์ชัน Homebrew การถอนการติดตั้งแอพ GitHub ช่วยแก้ไขปัญหาให้ฉัน


-1

เมื่อใช้ homebrew เพื่ออัพเดต git บนเครื่องของคุณให้ทำตามขั้นตอนต่อไปนี้:

brew doctor

แก้ไขปัญหาที่แนะนำ

brew update หากมี homebrew เวอร์ชันใหม่กว่าให้ใช้งาน

brew install git เพื่อดาวน์โหลดและติดตั้งเวอร์ชันล่าสุดของ git

การวิ่งbrew doctorจะบอกให้คุณรู้

คำเตือน : คุณมีถังที่ไม่ได้เชื่อมโยงในห้องใต้ดินของคุณ

การดำเนินการbrew link gitจะทำให้เกิดข้อผิดพลาด

ข้อผิดพลาด: ไม่สามารถ symlink bin / git

เป้าหมาย / usr / local / bin / git มีอยู่แล้ว คุณอาจต้องการลบ:

rm '/ usr / local / bin / git'

brew link --overwrite git เพื่อเขียนทับ symlink และชี้ไปที่ git brew ที่ติดตั้งไว้


-1

เปิดเทอร์มินัลของคุณ ป้อนคำสั่งนี้

sudo nano /etc/paths

จากนั้นคัดลอกพา ธ ต่อไปนี้ที่ด้านบนของไฟล์

/usr/local/git/bin

กด control + X และบันทึก

ตรวจสอบ git --version

ได้ผลสำหรับฉัน


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