แก้ไข PATH เพื่อให้ / usr / local / bin อยู่ข้างหน้า / usr / bin


24

ฉันพยายามติดตั้งก่อ แต่ได้รับคำเตือนต่อไปนี้:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

ฉันไม่รู้ว่าจะแก้ไขเส้นทางอย่างไร ฉันสำรวจหลายไฟล์จากโพสต์ล้นสแต็คนี้ (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2) แต่ไม่พบเส้นทางที่เกี่ยวข้องเพื่อแก้ไข ไฟล์เดียวที่ฉันมีอยู่คือไฟล์ / etc / profile ของฉันซึ่งปัจจุบันมีลักษณะดังนี้:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

ฉันต้องการถอนการติดตั้ง python แล้วติดตั้งใหม่ผ่าน homebrew แต่ฉันกังวลเล็กน้อยเกี่ยวกับการทำลายหลายสิ่งหลายอย่างพร้อมกัน

มีวิธีง่าย ๆ ในการแก้ไขเส้นทางหรือไม่ ฉันควรสร้างไฟล์. bash_profile หรือไม่ ขอบคุณสำหรับความช่วยเหลือใด ๆ ล่วงหน้า

คำตอบ:


30

ใช่สร้าง.bash_profileไฟล์ในไดเรกทอรีบ้านของคุณที่มี

PATH="/usr/local/bin:$PATH"

จากนั้นทำอย่างใดอย่างหนึ่งต่อไปนี้เพื่อให้การเปลี่ยนแปลงใช้งานได้

  • ปฏิบัติ . ~/.bash_profile
  • ดำเนินการPATH="/usr/local/bin:$PATH"ในเปลือกปัจจุบัน
  • รีสตาร์ท Terminal

2
@threenovation ถ้าคำตอบข้างต้นถูกต้องผมสามารถแนะนำให้คุณทำเครื่องหมายว่าเป็นคำตอบ (คลิกเห็บติดกับคำตอบ)
สตูวิลสัน

ฉันสงสัยว่าควรส่งออกสิ่งนี้หรือไม่ กระบวนการลูกควรมีเส้นทางใหม่นี้ด้วย เช่นกัน: เมื่อฉันตั้งค่าการต้มเบียร์มันไม่ได้เตือนฉันว่า / usr / bin มาก่อน / usr / local / bin
Steven Lu

@StevenLu มันส่งออกไปแล้วตามเวลาที่คุณได้รับ. bash_profile มันจะไม่เจ็บที่จะส่งออกอย่างชัดเจนอีกครั้ง แต่ไม่จำเป็น
เกล็นแจ็

ขอบคุณสำหรับสิ่งนี้. ทำงานแล้ว "ระบบของคุณกำลังจะก่อตัว"
Vezu

$PATHฉันดูเหมือนจะได้รับรายการที่ซ้ำกันใน
flow2k

10

คุณจำเป็นต้องแก้ไข / etc / เส้นทางเพื่อให้ / usr / local / bin เป็น บริษัท จดทะเบียนก่อน/ usr / bin คุณจะต้อง sudo บรรณาธิการของคุณเพื่อที่จะทำเช่นนั้น

อีกวิธีหนึ่งในการเปิดโปรแกรมแก้ไขคือ

 sudo open -t /etc/paths

เส้นทางของฉันมีการกำหนดค่าอย่างถูกต้องใน .bash_profile ของฉัน /etc/pathsแต่ไม่ได้อยู่ใน มันทำงานได้อย่างสวยงาม
Nick Tomlin

7
อย่าใช้วิธีนี้ในการตั้งค่าเส้นทางของคุณ - มีความเสี่ยงที่แอปพลิเคชันที่ไม่ใช่เทอร์มินัลจะรับส่วนประกอบ "ที่ถูกกลั่น" และล้มเหลว การใช้ "sudo" ควรเป็นธงสีแดงนอกจากว่าคุณเข้าใจในสิ่งที่คุณทำอย่างแท้จริง (โดยเฉพาะอย่างยิ่งกับระบบการพัฒนาระดับผู้ใช้เช่น Mac Homebrew) การแก้ไข. bash_profile และการรีสตาร์ทเทอร์มินัลควรเพียงพอ
rholmes

@rholmes ดังนั้นการเปลี่ยนแปลงที่จะ.bash_profileมีผลต่อเชลล์ผู้ใช้แบบโต้ตอบเท่านั้นและไม่ใช่แอปพลิเคชันอื่น ๆ
flow2k

1
@ flow2k .bash_profile จะส่งผลกระทบต่อเชลล์ผู้ใช้แบบโต้ตอบ แอปพลิเคชันที่เปิดตัวจากบรรทัดคำสั่งเชลล์จะสามารถเห็นตัวแปรที่ส่งออกได้ (ตัวอย่างเช่นการเรียกใช้แอป Mac "ปกติ" หรือคำสั่งบรรทัดคำสั่ง) รายละเอียดเพิ่มเติมสามารถพบได้ที่นี่ แต่พวกเขากำลังสร้างความแตกต่างที่ดีกว่าสิ่งที่คุณถาม: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos คำตอบโดย glenn jackman คือคำตอบที่ใช้ .
rholmes

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