जैसा कि मैं इसे समझता हूं, उस टकराव brewमें कुछ भी नहीं डालता है /usr/local/bin(जैसा नाम वैसा ही है) एक Apple निष्पादन योग्य वितरित करता है। इसलिए, /usr/local/binपहले रास्ते में होना /binऔर /usr/binकोई मुद्दा नहीं होना चाहिए, क्योंकि कोई नाम टकराव नहीं होना चाहिए। * हालांकि, नीचे दिए गए तरीके से और (MacPorts) जैसे अन्य पैकेज एग्रीगेटर के साथ lsऔर tar, और मुद्दों का उपयोग करके देखें।finkport
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कोड।
बात यह है, यह वास्तव में उस पर निर्भर करता है जो आप चाहते हैं और उस समय की आवश्यकता है।
यहाँ एसीएल समस्या का एक उदाहरण है जिसका मैंने ऊपर उल्लेख किया है।
मानक 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उपकरण नहीं मालूम होंगे , लेकिन जो किसी ACLसमस्या के कारण सड़क से 6 महीने नीचे कुछ तोड़ सकते हैं !