Насколько я понимаю, brew не помещает в /usr/local/bin ничего, что сталкивалось бы (имеет такое же имя) с распределенным исполняемым файлом Apple. Следовательно, наличие /usr/local/bin в пути до /bin и /usr/bin не должно быть проблемой, потому что не должно быть столкновений имен. *Как бы то ни было, посмотрите проблемы с ls и tar, а также с использованием других агрегаторов пакетов, таких как fink и port (MacPorts), ниже.
Brew делает одну из двух вещей, которые, как я знаю, помогают управлять столкновениями имен:
Brew оставляет несвязанные бочки в подвале. Чтобы установить вещи, варите оставляет инструменты там, где они есть, и создает символические ссылки на эти инструменты в /usr/local/bin. Для инструментов, с которыми brew не хочет коллизии имен, он не создает символическую ссылку.
- Для многих, если не всех стандартных утилит, которые также есть в
/bin и /usr/bin, brew префикс ссылки в /usr/local/bin содержит “g”, так что, например, чтобы выполнить ls с версией для варки, используйте gls. Просто сделайте ls -l в /usr/local/bin и ищите связанные файлы - это те brew, которые туда помещены. Замечание: Установленные утилиты brew, которые должны быть доступны под их реальными именами, находятся в /usr/local/Cellar/coreutils/8.21/libexec/gnubin.
я не ставлю /usr/local/bin в свой путь по двум причинам - эти причины находятся в нижней части моего ответа.
Для оценки столкновений имен в вашей системе используйте brew doctor и посмотрите на этот раздел - вот результат brew doctor, представляющий интерес:
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
Причина, по которой я не ставлю инструменты brew на первое место, на самом деле, вовсе нет, заключается в том, что команды brew, установленные в ls и tar, не обрабатывают файловую систему ACL должным образом, на самом деле, в последний раз, когда я проверял (это было на прошлой неделе), они не обрабатывались вообще. Это большая проблема, и чтобы ее полностью избежать, вместе с сопутствующей проблемой конфигурации страницы man, которая тегируется вместе с установкой $PATH правильно, я поставлю инструменты, связанные с OSX, особенно те, которые находятся в /bin и /usr/bin, в первую очередь.
Другой причиной, по которой я вообще не ставлю /usr/local/bin, является то, что brew плохо играет с другими, а fink и port (MacPorts) в настоящее время имеют гораздо больше поддерживаемых пакетов, которые мне нужны NOW. Например, я могу получить gnome-terminal с fink, но было бы очень сложно построить формулу и сделать то же самое с brew. Итак, я сохраняю /sw и /opt в своем поиске $PATH (для fink и port соответственно) и ссылаюсь на то, что мне нужно от /usr/local/bin, включая gnat, либо прописанные, либо использующие bash и alias, либо исходный файл setup для совершенно другой среды, когда пишу код Ada.
Дело в том, что это действительно зависит от того, чего вы хотите и в чем нуждаетесь в данный момент.
Вот пример проблемы ACL, о которой я упоминал выше.
С стандартными OSX инструментов:
$ /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
и с brew установленных инструментов:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
и
$ /usr/local/bin/gls --help | grep -i acl
Вы получите аналогичные результаты с tar и я не знаю дома много других brew инструментов, но кто может позволить себе иметь что-то сломать 6 месяцев вниз по дороге из-за ACL проблемы!