Theo tôi hiểu, brew
không đặt bất cứ thứ gì vào /usr/local/bin
các va chạm đó (có cùng tên với) một tệp thực thi được phân phối của Apple. Do đó, có /usr/local/bin
trong đường dẫn trước /bin
và /usr/bin
không nên là một vấn đề, bởi vì không nên có sự va chạm tên. * Tuy nhiên, hãy xem các vấn đề với ls
và tar
, và sử dụng các trình tổng hợp gói khác như fink
và port
(MacPorts), theo cách bên dưới.
Brew
thực hiện một trong hai điều mà tôi biết có thể giúp quản lý va chạm tên:
Brew
lá kegs không liên kết trong hầm. Để cài đặt công cụ, brew để lại các công cụ ở đó và tạo các liên kết tượng trưng đến các công cụ đó /usr/local/bin
. Đối với các công cụ brew
không muốn xung đột tên, nó không tạo ra một liên kết tượng trưng.
- Đối với nhiều người nếu không phải tất cả các công cụ tiêu chuẩn cũng có trong
/bin
và /usr/bin
, brew
tiền tố liên kết /usr/local/bin
với một "g", ví dụ, để thực hiện ls
với một phiên bản bia, hãy sử dụng gls
. Đơn giản chỉ cần làm một ls -l
trong /usr/local/bin
và tìm kiếm các tập tin liên quan - đó là những người brew
đặt ở đó. Lưu ý: Các brew
công cụ được cài đặt phải được truy cập bằng tên thật của chúng được tìm thấy trong /usr/local/Cellar/coreutils/8.21/libexec/gnubin
.
Tôi không đặt /usr/local/bin
con đường của mình vì hai lý do - những lý do đó nằm ở cuối câu trả lời của tôi.
Để đánh giá các xung đột tên trong hệ thống của bạn, hãy sử dụng brew doctor
và tìm phần này - Đây là kết brew doctor
quả quan tâm của:
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:
ctags
emacs
emacsclient
etags
ex
git
git-cvsserver
git-receive-pack
git-shell
git-upload-archive
git-upload-pack
rview
rvim
view
vim
vimdiff
vimtutor
xxd
Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
Lý do tôi không đặt brew
công cụ lên hàng đầu, trên thực tế, hoàn toàn không phải là vì các lệnh brew
đã cài đặt ls
và tar
không xử lý đúng hệ thống tệp ACL, trên thực tế, lần trước tôi đã kiểm tra (đó là tuần trước), chúng không phải là ' t xử lý cả . Đây là một vấn đề LỚN và để tránh nó hoàn toàn, cùng với man
vấn đề cấu hình trang được liên kết mà các thẻ cùng với việc đặt $PATH
quyền, tôi đảm bảo rằng tôi đặt các OSX
công cụ liên quan, đặc biệt là các công cụ được tìm thấy trong /bin
và /usr/bin
trước tiên.
Một lý do khác mà tôi thậm chí không đặt /usr/local/bin
vào con đường của mình là vì brew
không chơi tốt với người khác fink
và port
(MacPorts) có nhiều gói được hỗ trợ hơn hiện tại mà tôi cần NGAY BÂY GIỜ . Ví dụ, tôi có thể nhận được gnome-terminal
với fink
, nhưng nó sẽ là một nỗ lực lớn để xây dựng một công thức và làm tương tự với brew
. Vì vậy, tôi giữ /sw
và /opt
trong tìm kiếm của mình $PATH
(cho fink
và port
, tương ứng) và tham khảo những thứ tôi cần /usr/local/bin
, bao gồm gnat
, được đánh vần hoặc tôi sử dụng bash
alias
hoặc tôi lấy một setup
tệp cho một môi trường hoàn toàn khác khi tôi viết Ada
mã.
Điều này là, nó thực sự phụ thuộc vào những gì bạn muốn và cần tại thời điểm đó.
Đây là một ví dụ về vấn đề ACL mà tôi đã đề cập ở trên.
Với các OSX
công cụ tiêu chuẩn :
$ /bin/ls -le /var/root | head -7
total 24
drwx------+ 3 root wheel 102 May 28 2013 Desktop
0: group:everyone deny delete
1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit
drwx------+ 6 root wheel 204 Sep 19 14:22 Documents
0: group:everyone deny delete
1: user:_spotlight inherited allow list,search,readattr,readextattr,readsecurity,file_inherit,directory_inherit
và với các brew
công cụ được cài đặt:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
và
$ /usr/local/bin/gls --help | grep -i acl
Bạn sẽ nhận được kết quả tương tự tar
và tôi không biết về nhà nhiều brew
công cụ khác , nhưng ai đủ khả năng để có thứ gì đó bị hỏng trong 6 tháng vì một ACL
vấn đề!