मैंने अभी हाल ही में एक मैक को उबंटू से स्विच किया है। मैं निराश था कि मैक sudo apt-get
उबंटू में सुविधाजनक नहीं है । मैंने सुना है कि मुझे homebrew का उपयोग करना चाहिए, लेकिन मुझे बिल्कुल यकीन नहीं है कि homebrew या macports क्या करता है?
मैंने अभी हाल ही में एक मैक को उबंटू से स्विच किया है। मैं निराश था कि मैक sudo apt-get
उबंटू में सुविधाजनक नहीं है । मैंने सुना है कि मुझे homebrew का उपयोग करना चाहिए, लेकिन मुझे बिल्कुल यकीन नहीं है कि homebrew या macports क्या करता है?
जवाबों:
MacPorts जाने का रास्ता है।
जैसे @ user475443 ने बताया, MacPorts के पास कई और पैकेज हैं। काढ़ा के साथ आप अपने आप को जल्द ही फँसा हुआ पाएंगे क्योंकि आपके पास जो फार्मूला है वह मौजूद नहीं है।
MacPorts एक मूल अनुप्रयोग है: C + TCL। आपको रूबी की बिल्कुल भी जरूरत नहीं है। Mac OS X पर रूबी को स्थापित करने के लिए आपको MacPorts की आवश्यकता हो सकती है, इसलिए बस MacPorts के साथ जाएं और आपको खुशी होगी।
MacPorts वास्तव में स्थिर है, 8 वर्षों में मुझे इसके साथ कोई समस्या नहीं थी, और मेरा पूरा यूनिक्स पारिस्थितिकी तंत्र इस पर निर्भर था।
यदि आप एक PHP डेवलपर हैं तो आप Apache (मैक ओएस एक्स 2.2 का उपयोग करता है), पीएचपी और आपके द्वारा आवश्यक सभी एक्सटेंशन स्थापित कर सकते हैं, फिर सभी को एक कमांड के साथ अपग्रेड कर सकते हैं। Homebrew के साथ ऐसा करने के लिए भूल जाओ।
MacPorts समूहों का समर्थन करते हैं।
foo@macpro:~/ port select --summary
Name Selected Options
==== ======== =======
db none db46 none
gcc none gcc42 llvm-gcc42 mp-gcc48 none
llvm none mp-llvm-3.3 none
mysql mysql56 mysql56 none
php php55 php55 php56 none
postgresql postgresql94 postgresql93 postgresql94 none
python none python24 python25-apple python26-apple python27 python27-apple none
यदि आपके पास PHP55 और PHP56 दोनों हैं (कई अलग-अलग एक्सटेंशन के साथ), तो आप उनके बीच सिर्फ एक कमांड से स्वैप कर सकते हैं। सभी रिश्तेदार एक्सटेंशन समूह का हिस्सा हैं और वे चुने हुए समूह के भीतर सक्रिय हो जाएंगे: php55 या php56। मुझे यकीन नहीं है कि Homebrew में यह सुविधा है।
रूबी को रूबी में सब कुछ फिर से लिखना पसंद है, क्योंकि वे केवल एक चीज हैं जो रूबी में हैं।
Homebrew और macports दोनों एक ही समस्या को हल करते हैं - वह है सामान्य पुस्तकालयों और उपयोगिताओं की स्थापना जो कि ओएक्सएक्स के साथ बंडल नहीं हैं।
आमतौर पर ये विकास से संबंधित पुस्तकालय हैं और इन उपकरणों का सबसे आम उपयोग ओएक्सएक्स पर काम करने वाले डेवलपर्स के लिए है।
इन दोनों को स्थापित xcode कमांड लाइन टूल की आवश्यकता होती है (जिसे आप https://developer.apple.com/ से अलग से डाउनलोड कर सकते हैं ), और कुछ विशिष्ट पैकेजों के लिए आपको पूरे xcode IDE की आवश्यकता होगी।
Xcode को मैक ऐप स्टोर से इंस्टॉल किया जा सकता है, इसका मुफ्त डाउनलोड होता है, लेकिन इसके 5GB (अगर मुझे सही से याद है) में थोड़ी देर लगती है।
macports बीएसडी से पोर्ट उपयोगिता का एक ऑक्स संस्करण है (जैसा कि ऑक्स बीएसडी से लिया गया है, यह एक प्राकृतिक विकल्प था)। बीएसडी के किसी भी वितरण से परिचित लोगों के लिए, मैकपोर्ट घर पर सही महसूस करेंगे।
होमब्रे और मैकपोर्ट के बीच एक बड़ा अंतर; और इसका कारण यह है कि मैं होमब्रे को पसंद करता हूं, यह उन चीजों को अधिलेखित नहीं करेगा जिन्हें ओएसएक्स में "मूल रूप से" स्थापित किया जाना चाहिए। इसका मतलब यह है कि अगर कोई देशी पैकेज उपलब्ध है, तो होमब्रेव आपको इसे ओवरराइट करने के बजाय सूचित करेगा और लाइन को और कम करने की समस्या पैदा करेगा। यह उपयोगकर्ता स्थान में पुस्तकालय भी स्थापित करता है (इस प्रकार, आपको चीजों को स्थापित करने के लिए "sudo" का उपयोग करने की आवश्यकता नहीं है)। यह मदद करता है जब पुस्तकालयों से छुटकारा पाने के साथ-साथ सब कुछ आपके लिए सुलभ मार्ग में होता है।
homebrew भी अधिक सक्रिय उपयोगकर्ता समुदाय का आनंद लेता है और इसके पैकेज (जिन्हें सूत्र कहा जाता है) अक्सर अपडेट किए जाते हैं।
macports देशी OSX पैकेज को अधिलेखित नहीं करता है - यह अपने स्वयं के संस्करण की आपूर्ति करता है - यह मुख्य कारण है जो मैं घर-काढ़ा पर macports पसंद करता हूं, आपको जो भी उपयोग कर रहे हैं उसके बारे में निश्चित होना चाहिए और अलग-अलग समय पर बंदरगाहों में Apple का परिवर्तन और पता चल गया है कुछ परियोजनाओं में अद्यतन करने के लिए वर्षों के बाद
क्या आप यह दिखाते हुए एक संदर्भ दे सकते हैं कि macports देशी OS X संकुल को अधिलेखित करता है? जहाँ तक मैं बता सकता हूँ, सभी macports स्थापना में होता है
/opt/local
शायद मुझे स्पष्ट करना चाहिए - मैंने अपने जवाब में कहीं भी यह नहीं कहा कि मैकपोर्ट OSX देशी पैकेजों को ओवरराइट करता है। वे दोनों अलग से आइटम स्थापित करते हैं।
जब आप बेहतर संगतता के लिए (मूल रूप से पुस्तकालय / उपकरण के पसंदीदा इंस्टॉलर का उपयोग करके) चीजों को स्थापित करना चाहिए, तो Homebrew आपको चेतावनी देगा। यही मेरा मतलब है। यह ओएस एक्स में उपलब्ध कई स्थानीय पुस्तकालयों के रूप में भी उपयोग करेगा। विकी से :
हम वास्तव में Homebrew / homebrew में दुपट्टा पसंद नहीं करते हैं
हालाँकि, हम नल में दुपट्टे पसंद करते हैं!
Stuff जो OS X के साथ आता है या एक पुस्तकालय है जो RubyGems, CPAN या PyPi द्वारा प्रदान किया जाता है, को ठगा नहीं जाना चाहिए। इस के लिए अच्छे कारण हैं:
- डुप्लिकेट लाइब्रेरी नियमित रूप से बिल्ड तोड़ती हैं
- सूक्ष्म कीड़े डुप्लिकेट लाइब्रेरी के साथ, और कुछ हद तक, डुप्लिकेट टूल के साथ उभरते हैं
- हम चाहते हैं कि आप ओएस एक्स के साथ आने वाले अपने सूत्र को बनाने के लिए कड़ी मेहनत करें
आप वैकल्पिक रूप से होमब्रे के साथ उपयोगिताओं के macosx आपूर्ति किए गए संस्करणों को अधिलेखित कर सकते हैं ।
/opt/local
वर्तमान में, मैकपोर्ट के पास और अधिक पैकेज (~ 18.6 K) हैं, इसकी परिपक्वता के कारण, Homebrew सूत्र (~ 3.1K) हैं। हालांकि Homebrew धीरे-धीरे पकड़ रहा है।
मैकपोर्ट पैकेज एक व्यक्ति द्वारा बनाए रखा जाता है।
Macports संकुल के कई संस्करणों को अपने आस-पास रख सकता है, और आप चीजों को परखने के लिए उन्हें सक्षम या निष्क्रिय कर सकते हैं। कभी-कभी यह सूची दूषित हो सकती है और चीजों को वापस पाने के लिए आपको इसे मैन्युअल रूप से संपादित करना होगा, हालांकि यह बहुत कठिन नहीं है।
दोनों पैकेज मैनेजर नियमित रूप से अपडेट होने के लिए कहेंगे। इसमें कुछ समय लग सकता है।
नोट: आपके पास अपने सिस्टम पर दोनों पैकेज मैनेजर हो सकते हैं! यह एक या दूसरे का नहीं है। ब्रू शिकायत कर सकते हैं लेकिन मैकपोर्ट्स नहीं करेंगे।
इसके अलावा, यदि आप अजगर या रूबी पैकेज से निपट रहे हैं, तो जहां भी संभव हो आभासी वातावरण का उपयोग करें।
डिफ़ॉल्ट रूप से, Homebrew आपके / usr / स्थानीय के लिए पैकेज स्थापित करता है। Macport कमांड को sudo को इंस्टॉल करने और अपग्रेड करने की आवश्यकता होती है (जैसे कि Ubuntu में)।
अधिक विस्तार के लिए:
यह साइट Hombrew का उपयोग करने का सुझाव देती है: http://deephill.com/macports-vs-homebrew/
जबकि यह साइट Macports का उपयोग करने के लाभों को सूचीबद्ध करती है: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907
मैंने हाल ही में उबंटू से भी स्विच किया, और मुझे होमब्रेव (यह सरल और प्रयोग करने में आसान है!) का उपयोग करने में मजा आता है, लेकिन अगर आप सुडो का उपयोग करने के लिए संलग्न महसूस करते हैं, तो मैकपोर्ट्स जाने का बेहतर तरीका हो सकता है!
/usr/local
Homebrew के लिए नहीं छोड़ा है। ऐप्पल ने /usr/local
"निष्पादन योग्य, पुस्तकालयों, आदि के लिए छोड़ दिया है जो मूल ऑपरेटिंग सिस्टम द्वारा शामिल नहीं हैं"। इसका मतलब है कि यह संभव है कि होमब्रे का उपयोग करने से पहले स्थापित किए गए टूल ने /usr/local
ऐसा बनाया हो कि इसे बिना संशोधित नहीं किया जा सके sudo
। वे विकि पर चर्चा नहीं करते हैं।
/usr/local
रूट अनुमति के बिना उपयोग कर सकते हैं । /usr
एक ताजा OS X स्थापित करने के लिए डिफ़ॉल्ट अनुमतियाँ रूट स्वामी हैं, किसी और के लिए कोई लिखित अनुमति नहीं है। यहां तक कि बनाने के लिए /usr/local
, Homebrew को रूट एक्सेस की आवश्यकता होगी। (मैं कुछ भी बचाव करने की कोशिश नहीं कर रहा हूं)
homebrew
बिना सामान के स्थापित कर सकता है sudo
क्योंकि जब यह खुद को स्थापित करता है, तो यह निर्देशिका शिथिलता पर अनुमति देने के लिए उपयोग करता है, sudo
इसलिए यह /usr/local
पासवर्ड को ट्रिगर किए बिना अंदर कुछ भी करने में सक्षम होगा । क्या इसका मतलब "पासवर्ड के बिना इंस्टॉल" भाग गलत है? मुझे ऐसा नहीं लगता! यह अभी भी सही है कि पासवर्ड के बिना सामान प्राप्त करने में सक्षम homebrew
होगा ।