যেহেতু আমি এটি বুঝতে পেরেছি, brew
কোনও /usr/local/bin
আপেল এক্সিকিউটেবল বিতরিত এ সংঘর্ষে (একই নাম রয়েছে) কিছুই রাখবে না। অতএব, /usr/local/bin
আগে পথে থাকা /bin
এবং /usr/bin
কোনও সমস্যা হওয়া উচিত নয়, কারণ কোনও নাম সংঘর্ষ হওয়া উচিত নয়। * তবে, নীচে নীচে এবং ( এবং ম্যাকপোর্টস) এর মতো অন্যান্য প্যাকেজ অ্যাগ্রিগেটরগুলি সহ ls
এবং এর সাথে সমস্যাগুলি দেখুন।tar
fink
port
Brew
নামগুলির সংঘর্ষগুলি পরিচালনা করতে সহায়তা করে এমন দুটি জিনিসের মধ্যে আমি জানি:
Brew
ভোজনে লিঙ্কযুক্ত চাবি ছেড়ে। স্টাফ ইনস্টল করার জন্য, ব্রিউগুলি যেখানে রয়েছে সেগুলি সরঞ্জামগুলি ছেড়ে যায় এবং সেই সরঞ্জামগুলিতে প্রতীকী লিঙ্ক তৈরি করে /usr/local/bin
। যে সরঞ্জামগুলির brew
সাথে নামের সংঘর্ষ চান না তাদের জন্য এটি প্রতীকী লিঙ্ক তৈরি করে না।
- অনেকের কাছে যদি না থাকে তবে সমস্ত স্ট্যান্ডার্ড টুলস যা সেগুলিতেও রয়েছে
/bin
এবং /usr/bin
, "g" 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
কমান্ডগুলি ফাইল সিস্টেমের এসিএল সঠিকভাবে পরিচালনা করে না, আসলে, গতবার আমি যাচাই করেছি (যা গত সপ্তাহে ছিল), তারা ছিল না ' টি মোটেও সামলানো । এটি একটি বিগ সমস্যা এবং এটি সম্পূর্ণরূপে এড়াতে, যুক্ত man
পৃষ্ঠা কনফিগারেশন ইস্যুটি সহ $PATH
সঠিক সেট করার পাশাপাশি ট্যাগগুলি রাখার জন্য, আমি নিশ্চিত হয়েছি যে আমি OSX
সম্পর্কিত সরঞ্জামগুলি রেখেছি , বিশেষত যা পাওয়া গেছে /bin
এবং /usr/bin
প্রথমে put
আমি /usr/local/bin
আমার পথেও একেবারে না রাখার আরেকটি কারণ হ'ল brew
অন্যদের সাথে ভাল খেলছে না এবং fink
এবং port
(ম্যাকপোর্টস) বর্তমানে আরও বেশি সমর্থিত প্যাকেজ রয়েছে যা আমার এখনই প্রয়োজন । উদাহরণস্বরূপ, আমি 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 মাস রাস্তায় কিছু বিরতি পাওয়ার সামর্থ্য কে আছে !