Jak rozumiem, brewnie umieszcza niczego, /usr/local/binco koliduje (ma taką samą nazwę jak) dystrybuowany plik wykonywalny Apple. Dlatego posiadanie /usr/local/binna ścieżce przed /bini /usr/binnie powinno być problemem, ponieważ nie powinno być kolizji nazw. * Jednak zobacz problemy z lsi taroraz za pomocą innych agregatorów pakietów, takich jak finki port(MacPorts), poniżej.
Brew robi jedną z dwóch znanych mi rzeczy, które pomagają zarządzać kolizjami nazw:
Brewpozostawia niepowiązane beczki w piwnicy. Aby zainstalować rzeczy, brew pozostawia narzędzia tam, gdzie są i tworzy symboliczne linki do tych narzędzi /usr/local/bin. W przypadku narzędzi, które brewnie chcą kolizji nazw, nie tworzy dowiązania symbolicznego.
- Dla wielu, jeśli nie wszystkich standardowych narzędzi, które są również w
/bini /usr/bin, brewprefiksy w link /usr/local/binz „g”, a więc na przykład, wykonują lsz wersją piwny, użytkowania gls. Wystarczy zrobić ls -lin /usr/local/bini szukać powiązanych plików - to te, brewumieszczone tam. Uwaga: brewZainstalowane narzędzia, do których należy uzyskać dostęp pod ich prawdziwymi nazwami, znajdują się w /usr/local/Cellar/coreutils/8.21/libexec/gnubin.
Nie stawiam /usr/local/binna swojej drodze z dwóch powodów - te powody leżą u podstaw mojej odpowiedzi.
Aby ocenić kolizje nazw w systemie, użyj brew doctori poszukaj tej sekcji - oto brew doctorinteresujące wyniki:
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
Powodem, dla którego nie stawiam brewnarzędzi na pierwszym miejscu, w rzeczywistości wcale nie jest to, że brewzainstalowane lsi tarpolecenia nie obsługują poprawnie ACL systemu plików, w rzeczywistości, kiedy ostatnio sprawdzałem (który był w zeszłym tygodniu), nie były w ogóle załatwione . Jest to WIELKI problem i aby go całkowicie uniknąć, wraz z powiązanym manproblemem konfiguracji strony, który oznacza wraz z ustawieniem $PATHodpowiedniego, upewniam się, że umieściłem OSXpowiązane narzędzia, zwłaszcza te znalezione w, /bini /usr/bin, na początku.
Innym powodem, dla którego nawet nie postawiłem /usr/local/binna swojej drodze, jest to, że brewnie gra się dobrze z innymi, finka port(MacPorts) mają obecnie o wiele więcej obsługiwanych pakietów, których potrzebuję TERAZ . Na przykład mogę sobie gnome-terminalz tym poradzić fink, ale zbudowanie formuły i zrobienie tego samego byłoby dużym wysiłkiem brew. Więc trzymam /swi /optw moich poszukiwań $PATH(dla finki port, odpowiednio) i rzeczy referencyjne muszę z /usr/local/bintym gnat, albo sprecyzować, czy mogę użyć bash alias„S lub I source setupplik na zupełnie innym środowisku, kiedy pisanie Adakodu.
Chodzi o to, że tak naprawdę zależy od tego, czego chcesz i potrzebujesz w danym momencie.
Oto przykład problemu ACL, o którym wspomniałem powyżej.
Za pomocą standardowych OSXnarzędzi:
$ /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
oraz z brewzainstalowanymi narzędziami:
$ /usr/local/bin/gls -le /var/root
/usr/local/bin/gls: invalid option -- 'e'
Try '/usr/local/bin/gls --help' for more information.
i
$ /usr/local/bin/gls --help | grep -i acl
Uzyskasz podobne wyniki tari nie znam wielu innych brewnarzędzi, ale na kogo stać 6 miesięcy z powodu ACLproblemu!