Як я розумію, 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
с «г», так, наприклад, щоб виконати 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 належним чином, насправді востаннє я перевіряв (що було минулого тижня), вони були ' t взагалі не впорався . Це велика проблема, і щоб уникнути її взагалі, разом із пов’язаною man
проблемою з конфігурацією сторінки, яка позначає теги разом із $PATH
правильним налаштуванням , я переконуюсь, що я поклав спочатку OSX
відповідні інструменти, особливо ті, які знайдені у /bin
та /usr/bin
, спочатку.
Ще одна причина, яку я взагалі не ставлю /usr/local/bin
на свій шлях, полягає в тому, що brew
вона не грає добре з іншими, fink
і port
(MacPorts) в даний час набагато більше підтримуваних пакетів, які мені потрібні ЗАРАЗ . Наприклад, я можу отримати 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
проблему!