Як я розумію, 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проблему!