Theo tôi hiểu, brewkhông đặt bất cứ thứ gì vào /usr/local/bincá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/bintrong đường dẫn trước /binvà /usr/binkhô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 lsvà tar, và sử dụng các trình tổng hợp gói khác như finkvà 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:
Brewlá 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ụ brewkhô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
/binvà /usr/bin, brewtiền tố liên kết /usr/local/binvới một "g", ví dụ, để thực hiện lsvớ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 -ltrong /usr/local/binvà tìm kiếm các tập tin liên quan - đó là những người brewđặt ở đó. Lưu ý: Các brewcô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/bincon đườ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 doctorvà tìm phần này - Đây là kết brew doctorquả 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 brewcô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 lsvà tarkhô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 manvấn đề cấu hình trang được liên kết mà các thẻ cùng với việc đặt $PATHquyền, tôi đảm bảo rằng tôi đặt các OSXcông cụ liên quan, đặc biệt là các công cụ được tìm thấy trong /binvà /usr/bintrước tiên.
Một lý do khác mà tôi thậm chí không đặt /usr/local/binvào con đường của mình là vì brewkhông chơi tốt với người khác finkvà 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-terminalvớ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ữ /swvà /opttrong tìm kiếm của mình $PATH(cho finkvà 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 aliashoặc tôi lấy một setuptệp cho một môi trường hoàn toàn khác khi tôi viết Adamã.
Đ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 OSXcô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 brewcô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ự tarvà tôi không biết về nhà nhiều brewcông cụ khác , nhưng ai đủ khả năng để có thứ gì đó bị hỏng trong 6 tháng vì một ACLvấn đề!