Làm thế nào để sửa đổi PATH cho Homebrew?


150

Đang thử cài đặt ruby ​​1.9.3, hãy đọc rằng tôi cần cài đặt homebrew trước. Ran brew bác sĩ, và nó cho tôi một loạt các cảnh báo. Một trong số đó là:

Cảnh báo: / usr / bin xảy ra trước / usr / local / bin Điều này có nghĩa là các chương trình do hệ thống cung cấp sẽ được sử dụng thay vì các chương trình do Homebrew cung cấp. Các công cụ sau tồn tại ở cả hai đường dẫn:

easy_install
easy_install-2.6

Cân nhắc sửa đổi PATH của bạn để / usr / local / bin vượt lên trên / usr / bin trong PATH của bạn.

Làm thế nào để một người làm những gì nó yêu cầu ở đây?


1
Câu trả lời của @AristotlePagaltzis trên SuperUser theo quan điểm của tôi, cho phép các ứng dụng hệ thống của bạn tiếp tục sử dụng /usr/bin, trong khi bạn liên kết có chọn lọc các tệp thực thi Homebrew mà bạn muốn sử dụng thay vì các phiên bản do Apple cung cấp, chẳng hạn như Git.

@mrdavidjcole: fengd không trả lời câu hỏi đó?
fotinsky 10/07/2015

Stack Overflow là một trang web dành cho các câu hỏi lập trình và phát triển. Câu hỏi này dường như lạc đề vì nó không liên quan đến lập trình hay phát triển. Xem những chủ đề nào tôi có thể hỏi về đây trong Trung tâm trợ giúp. Có lẽ Super User hoặc Apple Stack Exchange sẽ là một nơi tốt hơn để hỏi. Ngoài ra, xem tôi gửi câu hỏi về Dev Ops ở đâu? .
jww

Câu trả lời:


299

mở tập tin / etc / path của bạn, đặt / usr / local / bin lên trên / usr / bin

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

và khởi động lại thiết bị đầu cuối , @mmel


9
Tải lại môi trường hoặc bắt đầu một thiết bị đầu cuối mới sau khi thực hiện thay đổi này.
mmell

4
Không đồng ý với điều này - nên sử dụng câu trả lời dưới đây - cỗ máy thời gian, v.v. sẽ không chọn thay đổi này. Tôi nghĩ là bên ngoài thư mục người dùng.
Ian Warner

Đây cũng là giải pháp tốt nhất tôi tìm thấy nếu vấn đề của bạn là RVM và Homebrew dường như đang cạnh tranh cho cùng một bất động sản trong tệp .bash_profile của bạn.
MCB

Tôi sẽ KHÔNG chỉnh sửa / etc / path; thay vào đó, sử dụng .profile / phương pháp .bash_profile mô tả ở nơi khác (ví dụ, câu trả lời bằng @avelis bên dưới hoặc cho một cách tiếp cận hoang tưởng hơn, xem xét đầu tiên tham khảo câu trả lời AristotlePagaltzis về superuser.
rholmes

1
Bạn có thể muốn thử sử dụng trình soạn thảo văn bản đầu cuối nano thay vì thông qua. Tôi thấy điều này là dễ sử dụng hơn. "sudo nano / etc / path" thay vì "sudo vi / etc / path".
tbradley22

78

Có nhiều cách để cập nhật đường dẫn của bạn. Câu trả lời Jun1st hoạt động tuyệt vời. Một phương pháp khác là tăng cường .bash_profileđể bạn có:

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

Các dòng trên địa điểm /usr/local/bin/usr/local/sbinở phía trước của bạn $PATH. Khi bạn lấy nguồn của mình .bash_profilehoặc bắt đầu một thiết bị đầu cuối mới, bạn có thể xác minh đường dẫn của mình bằng cách lặp lại .

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

Một khi hài lòng với kết quả chạy $ brew doctorlại sẽ không còn tạo ra lỗi của bạn nữa.

Bài đăng trên blog này đã giúp tôi giải quyết các vấn đề tôi gặp phải. http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/


2
@JanuszChudzynski Đối với giải pháp của Jun1st, có thể là bạn phải khởi động lại phiên dòng lệnh để xem thay đổi.
avelis

Các phiên bản gần đây của ngày homebrew: Cân nhắc cài đặt PATH của bạn để / usr / local / bin xảy ra trước / usr / bin. Đây là một lót :echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile . Đó là cơ bản những gì câu trả lời này cho thấy.
nacho4d

Tuy nhiên tôi nghi ngờ đó là cách đúng đắn. Xem bên dưới: Trước khi thay đổi: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binthay đổi: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profileSau khi thay đổi: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin Điều này có nghĩa là nếu không tìm thấy lệnh trong / usr / local / bin, nó có thể được tìm kiếm hai lần trước khi tìm thấy trong đường dẫn khác. Tôi nghĩ tốt hơn là thay đổi /etc/pathstệp
nacho4d

$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile mang lại cho tôi $ PATH "'>> ~ / .bash_profile -bash: $: lệnh không tìm thấy
Mamba

@rpeg Tôi chắc chắn nếu bạn tìm kiếm hướng dẫn trên web có rất nhiều tài nguyên, nhưng đây là tài nguyên tôi biết. linux.com/learn/tutorials/272346-bash-101-
Work

20

Chỉ cần chạy dòng sau trong ứng dụng thiết bị đầu cuối yêu thích của bạn:

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

Khởi động lại thiết bị đầu cuối của bạn và chạy

brew doctor

vấn đề cần được giải quyết


3
Nếu bạn đang sử dụng zsh sử dụng này lệnh echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / zshrc
Kareem

1

mở hồ sơ bash trong textEdit

mở -e .bash_profile

Chỉnh sửa tập tin hoặc dán ở phía trước xuất PATH PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

lưu và đóng tập tin

* Để mở .bash_profile trực tiếp mở textEdit> tệp> gần đây


0

Để tránh trùng lặp không cần thiết, tôi đã thêm phần sau vào ~ / .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

Tín dụng: https://superuser.com/a/580611

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.