จะแก้ไข PATH สำหรับ Homebrew ได้อย่างไร?


150

กำลังพยายามติดตั้ง ruby ​​1.9.3 ให้อ่านว่าฉันต้องติดตั้ง homebrew ก่อน วิ่งชงหมอและมันก็ทำให้ฉันได้รับคำเตือนมากมาย หนึ่งในนั้นคือ:

คำเตือน: / usr / bin เกิดขึ้นก่อน / usr / local / bin ซึ่งหมายความว่าโปรแกรมที่ระบบจะใช้แทนการใช้โดย Homebrew เครื่องมือต่อไปนี้มีอยู่ที่ทั้งสองพา ธ :

easy_install
easy_install-2.6

ลองพิจารณาแก้ไข PATH ของคุณเพื่อให้ / usr / local / bin อยู่ข้างหน้า / usr / bin ใน PATH ของคุณ

เราจะทำสิ่งที่ขอในที่นี้ได้อย่างไร


1
@AristotlePagaltzis 's คำตอบใน SuperUserให้ทางออกที่ดีที่สุดในความคิดของฉันที่ช่วยให้แอพพลิเคระบบของคุณจะยังคงใช้/usr/binในขณะที่คุณเลือกที่ symlink executables Homebrew ที่คุณต้องการที่จะใช้แทนรุ่นแอปเปิ้ลส่งเช่น Git

@mrdavidjcole: fengd ไม่ได้ตอบคำถามนั้น?
fotinsky

Stack Overflow เป็นเว็บไซต์สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมและการพัฒนา คำถามนี้ดูเหมือนจะไม่ได้อยู่ที่หัวข้อเพราะไม่เกี่ยวกับการเขียนโปรแกรมหรือการพัฒนา ดูหัวข้อใดบ้างที่ฉันสามารถถามเกี่ยวกับที่นี่ในศูนย์ช่วยเหลือ บางทีผู้ใช้ระดับสูงหรือApple Stack Exchangeอาจเป็นสถานที่ที่ดีกว่าที่จะถาม ดูที่ฉันจะโพสต์คำถามเกี่ยวกับ Dev Ops ได้ที่ไหน .
jww

คำตอบ:


299

เปิดไฟล์ / etc / path ของคุณใส่ / usr / local / bin ที่ด้านบนของ / usr / bin

$ sudo vi /etc/paths
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

และรีสตาร์ทเทอร์มินัล @mmel


9
รีโหลดสภาพแวดล้อมหรือเริ่มเทอร์มินัลใหม่หลังจากทำการเปลี่ยนแปลงนี้
mmell

4
ไม่เห็นด้วยกับสิ่งนี้ - ควรใช้คำตอบด้านล่าง - ไทม์แมชชีนเป็นต้นจะไม่เลือกการเปลี่ยนแปลงนี้ฉันคิดว่าเป็นโฟลเดอร์ผู้ใช้นอก
Ian Warner

นี่เป็นวิธีที่ดีที่สุดที่ฉันพบถ้าปัญหาของคุณคือ RVM และ Homebrew ทั้งคู่ดูเหมือนจะแข่งขันกันเพื่ออสังหาริมทรัพย์ในไฟล์. bash_profile ของคุณ
MCB

ฉันจะไม่แก้ไข / etc / path; ให้ใช้วิธีการ. profile / .bash_profile ที่อธิบายไว้ที่อื่น (เช่นตอบโดย @avelis ด้านล่างหรือสำหรับวิธีการหวาดระแวงเพิ่มเติมดูคำวิจารณ์แรกที่อ้างถึง AristotlePagaltzis คำตอบสำหรับ SuperUser
14:54

1
คุณอาจต้องการลองใช้เท็กซ์เอดิเตอร์เทอร์มินัลนาโนแทนผ่าน ฉันพบว่าใช้ง่ายกว่านี้ "sudo nano / etc / path" แทน "sudo vi / etc / path"
tbradley22

78

มีหลายวิธีในการอัปเดตเส้นทางของคุณ คำตอบ Jun1st ใช้งานได้ดี อีกวิธีหนึ่งคือการเพิ่มของคุณที่.bash_profileจะมี:

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

บรรทัดข้างต้นสถานที่/usr/local/binและในหน้าของคุณ/usr/local/sbin $PATHเมื่อคุณแหล่งที่มาของคุณ.bash_profileหรือเริ่มต้นเทอร์มินัลใหม่คุณสามารถตรวจสอบเส้นทางของคุณโดยสะท้อนออกมา

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/Users/<your account>/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

เมื่อพอใจกับผลการทำงาน$ brew doctorอีกครั้งไม่ควรเกิดข้อผิดพลาดอีกต่อไป

โพสต์บล็อกนี้ช่วยฉันแก้ไขปัญหาที่พบ http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/


2
@JanuszChudzynski สำหรับโซลูชันของ Jun1st อาจเป็นเพราะคุณต้องรีสตาร์ทเซสชันบรรทัดคำสั่งเพื่อดูการเปลี่ยนแปลง
avelis

รุ่นล่าสุดของวัน homebrew: พิจารณาตั้งค่าเส้นทางของคุณเพื่อให้ / usr / local / bin เกิดขึ้นก่อน / usr / bin echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profileนี่คือหนึ่งซับ: ซึ่งโดยทั่วไปแล้วสิ่งที่คำตอบนี้แสดงให้เห็น
nacho4d

อย่างไรก็ตามฉันสงสัยว่ามันเป็นวิธีที่ถูกต้อง ดูด้านล่าง: ก่อนการเปลี่ยนแปลง: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binเปลี่ยนแปลง: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profileหลังการเปลี่ยนแปลง: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin ซึ่งหมายความว่าหากไม่พบคำสั่งใน / usr / local / bin คำสั่งนั้นอาจถูกค้นหาสองครั้งก่อนที่จะพบในเส้นทางอื่น ฉันคิดว่ามันจะดีกว่าที่จะเปลี่ยน/etc/pathsไฟล์
nacho4d

$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile ให้ฉัน $ PATH "'>> ~ / .bash_profile -bash: $: ไม่พบคำสั่ง
Mamba

@rpeg ฉันแน่ใจว่าถ้าคุณค้นหาเว็บบทเรียนมีทรัพยากรมากมาย แต่นี่คือสิ่งที่ฉันรู้ linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
avelis

20

เพียงเรียกใช้บรรทัดต่อไปนี้ในแอปพลิเคชันเทอร์มินัลที่คุณชื่นชอบ

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

รีสตาร์ทเครื่องและเรียกใช้

brew doctor

ปัญหาควรได้รับการแก้ไข


3
หากคุณกำลังใช้ zsh ให้ใช้คำสั่งนี้ echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / .zshrc
kareem

1

เปิดโปรไฟล์ทุบตีใน textEdit

เปิด -e .bash_profile

แก้ไขไฟล์หรือวางหน้าการส่งออก PATH PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

บันทึกและปิดไฟล์

* หากต้องการเปิด. bash_profile ให้เปิด textEdit> file> ล่าสุดโดยตรง


0

เพื่อหลีกเลี่ยงการทำซ้ำที่ไม่จำเป็นฉันได้เพิ่มสิ่งต่อไปนี้ใน ~ / .bash_profile

case ":$PATH:" in
  *:/usr/local/bin:*) ;;     # do nothing if $PATH already contains /usr/local/bin
  *) PATH=/usr/local/bin:$PATH ;;  # in every other case, add it to the front
esac

เครดิต: https://superuser.com/a/580611

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