Sửa đổi PATH sao cho / usr / local / bin đi trước / usr / bin


24

Tôi đang cố gắng cài đặt brew nhưng nhận được cảnh báo sau:

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.

Tôi không có ý tưởng làm thế nào để sửa đổi đường dẫn. Tôi đã khám phá một số tệp từ bài đăng tràn ngăn xếp này (http://stackoverflow.com/questions/8886114/USE-brew-with-ruby-1-9-2), nhưng không thể tìm thấy đường dẫn phù hợp để chỉnh sửa. Tệp duy nhất mà tôi có tồn tại là tệp / etc / profile hiện tại trông như sau:

# 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

Tôi muốn chỉ gỡ cài đặt python sau đó cài đặt lại nó thông qua homebrew, nhưng hơi lo lắng về việc phá vỡ quá nhiều thứ cùng một lúc.

Có một cách dễ dàng để sửa đổi đường dẫn? Tôi có nên tạo tệp .bash_profile không? Cảm ơn bạn trước vì mọi sự giúp đỡ.

Câu trả lời:


30

Có, tạo một .bash_profiletập tin trong thư mục nhà của bạn có chứa

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

và sau đó thực hiện một trong những thao tác sau để thay đổi hoạt động

  • thi hành . ~/.bash_profile
  • thực hiện PATH="/usr/local/bin:$PATH"trong shell hiện tại
  • khởi động lại thiết bị đầu cuối

2
@threenovation nếu câu trả lời trên là chính xác, tôi có thể đề nghị bạn đánh dấu nó là câu trả lời không (nhấp vào đánh dấu bên cạnh câu trả lời)
Stu Wilson

Tôi tự hỏi nếu điều này nên được xuất khẩu? Quá trình con cũng nên có con đường mới này. Ngoài ra: Khi tôi thiết lập brew, nó không thông báo cho tôi rằng / usr / bin đã xuất hiện trước / usr / local / bin.
Steven Lu

@StevenLu, nó đã được xuất vào thời điểm bạn truy cập .bash_profile. Sẽ không hại khi xuất khẩu lại một lần nữa, nhưng không cần thiết.
glenn jackman

Cảm ơn vì điều đó. Đã làm việc "Hệ thống của bạn hiếm khi sản xuất."
Vezu

Tôi dường như nhận được các mục trùng lặp trong $PATH.
Flow2k

10

Bạn cần sửa đổi / etc / path để / usr / local / bin được liệt kê trước / usr / bin . Bạn sẽ cần sudo biên tập viên của bạn để làm điều đó.

Một trong những cách để mở trình soạn thảo là

 sudo open -t /etc/paths

PATH của tôi được định cấu hình chính xác trong .bash_profile của tôi, nhưng không phải trong /etc/paths. Điều này làm việc rất đẹp.
Nick Tomlin

7
KHÔNG sử dụng phương pháp này để thiết lập đường dẫn của bạn - có nguy cơ các ứng dụng không đầu cuối sẽ nhận các thành phần "được ủ" và không thành công. Sử dụng "sudo" cũng phải là một lá cờ đỏ trừ khi bạn thực sự hiểu những gì bạn đang làm (đặc biệt là với hệ thống phát triển cấp người dùng như Mac Homebrew). Chỉnh sửa .bash_profile và khởi động lại thiết bị đầu cuối của bạn là đủ.
chuyến đi

@rholmes Vì vậy, những thay đổi chỉ .bash_profileảnh hưởng đến vỏ người dùng tương tác chứ không phải các ứng dụng khác?
Flow2k

1
@ Flow2k .bash_profile sẽ ảnh hưởng đến trình bao người dùng tương tác. Bất kỳ biến xuất nào sẽ được nhìn thấy bởi các ứng dụng được khởi chạy từ dòng lệnh shell (ví dụ: khởi chạy ứng dụng Mac "thông thường" hoặc lệnh dòng lệnh). Một số chi tiết khác có thể được tìm thấy ở đây, nhưng chúng tạo ra sự khác biệt tốt hơn so với những gì bạn đã hỏi: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos Câu trả lời của glenn jackman là câu trả lời .
du lịch

1
@ Flow2k có, bạn đã nói chính xác.
du lịch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.