Homebrew, macports या अन्य पैकेज इंस्टॉलेशन टूल का अंतर / उपयोग क्या है? [बन्द है]


238

मैंने अभी हाल ही में एक मैक को उबंटू से स्विच किया है। मैं निराश था कि मैक sudo apt-getउबंटू में सुविधाजनक नहीं है । मैंने सुना है कि मुझे homebrew का उपयोग करना चाहिए, लेकिन मुझे बिल्कुल यकीन नहीं है कि homebrew या macports क्या करता है?


4
बहुत संबंधित: apple.stackexchange.com/questions/32724/…
cregox

8
कुछ साल पहले होमब्रेव फ्रंट डोर में एक स्टेटमेंट था जो कुछ इस तरह से गया था "होमब्रे बेहतर है क्योंकि यह रूबी में लिखा गया है"। मेरे पास रूबी मन के खिलाफ कुछ भी नहीं है, बिल्कुल नहीं। मुझे ऊप पसंद है और माणिक एक अच्छी ऊप भाषा है। मुझे किसी भी सॉफ्टवेयर डेवलपर के साथ एक समस्या है जो सोचती है कि एक भाषा अन्य सभी की तुलना में बेहतर है। अकेले इस कारण से मुझे होमब्रे में कोई दिलचस्पी नहीं है। इसके अलावा, macports कई वर्षों से मेरे लिए ठीक काम कर रहा है।
माइक मचूच

जवाबों:


145

MacPorts जाने का रास्ता है।

  1. जैसे @ user475443 ने बताया, MacPorts के पास कई और पैकेज हैं। काढ़ा के साथ आप अपने आप को जल्द ही फँसा हुआ पाएंगे क्योंकि आपके पास जो फार्मूला है वह मौजूद नहीं है।

  2. MacPorts एक मूल अनुप्रयोग है: C + TCL। आपको रूबी की बिल्कुल भी जरूरत नहीं है। Mac OS X पर रूबी को स्थापित करने के लिए आपको MacPorts की आवश्यकता हो सकती है, इसलिए बस MacPorts के साथ जाएं और आपको खुशी होगी।

  3. MacPorts वास्तव में स्थिर है, 8 वर्षों में मुझे इसके साथ कोई समस्या नहीं थी, और मेरा पूरा यूनिक्स पारिस्थितिकी तंत्र इस पर निर्भर था।

  4. यदि आप एक PHP डेवलपर हैं तो आप Apache (मैक ओएस एक्स 2.2 का उपयोग करता है), पीएचपी और आपके द्वारा आवश्यक सभी एक्सटेंशन स्थापित कर सकते हैं, फिर सभी को एक कमांड के साथ अपग्रेड कर सकते हैं। Homebrew के साथ ऐसा करने के लिए भूल जाओ।

  5. 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 में यह सुविधा है।

  6. रूबी को रूबी में सब कुछ फिर से लिखना पसंद है, क्योंकि वे केवल एक चीज हैं जो रूबी में हैं।


26
रुबिस्टों को फिर से लिखना पसंद है - हे, जेएस में MySQL के लिए बाइनरी प्रोटोकॉल को लागू करने वाले NodeJS लोगों पर एक नज़र है! :)
कोलाप्टो

37
रूबी को स्थापित करने के लिए आपको मैकपोर्ट्स की आवश्यकता नहीं है - रूबी को ओएस एक्स के साथ शामिल किया गया है, और ब्रू सिस्टम रूबी का उपयोग करता है।
माइकल एकस्ट्रैंड

5
@Michael Ekstrand OS X में रूबी का अंतिम संस्करण शामिल नहीं है।
संज्ञा

89
इसे बढ़ा नहीं सकते। यह बहुत ही भद्दा है, और सूंघना जानकारी को कमज़ोर कर देता है।
OldPeculier

34
अपवाहित "एंटी-स्नार्की" अपवोट्स का मुकाबला करने के लिए अपवोट करना। मनुष्य से प्राप्त किसी भी जानकारी में हमेशा एक प्राकृतिक पूर्वाग्रह (इस मामले में "स्नार्कनेस") होगा। मैं इस उपयोगकर्ता के दृष्टिकोण की सराहना करता हूं, शायद विशेष रूप से क्योंकि उत्तर विकिपीडिया प्रविष्टि की तरह नहीं पढ़ता है।
रिनोगो

109

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 आपूर्ति किए गए संस्करणों को अधिलेखित कर सकते हैं ।


78
macports देशी OSX पैकेज को अधिलेखित नहीं करता है - यह अपने स्वयं के संस्करण की आपूर्ति करता है - यह मुख्य रासन है जिसे मैं घर-काढ़ा पर मैकपोर्ट पसंद करता हूं, आपको यह सुनिश्चित करने की आवश्यकता है कि आप क्या उपयोग कर रहे हैं और Apple के बंदरगाहों पर अलग-अलग समय पर परिवर्तन और पता है कुछ परियोजनाओं में अद्यतनों के पीछे ye3srs होना
mmmmmm

13
क्या आप यह दिखाते हुए एक संदर्भ दे सकते हैं कि macports देशी OS X संकुल को अधिलेखित करता है? जहाँ तक मैं बता सकता हूँ, सभी macports स्थापना में होता है/opt/local

27
आपने कम से कम बहुत दृढ़ता से किया है कि MacPorts देशी OS X संकुल को अधिलेखित करता है। "स्पष्ट" करने के बजाय, अभी भी दिखावा करते हुए आपने यह नहीं लिखा कि आपने क्या लिखा है, आपको संभवतः प्रश्न में वाक्य को संपादित करना चाहिए।
आराम

13
यह वाक्य, "होमब्रेव और मैकपोर्ट्स के बीच एक बड़ा अंतर; और इसका कारण यह है कि मैं होमब्रे को पसंद करता हूं, यह है कि यह उन चीजों को अधिलेखित नहीं करेगा, जिन्हें ओएसएक्स में" मूल रूप से "स्थापित किया जाना चाहिए।" "होमब्रेव और मैकपोर्ट्स के बीच एक बड़ा अंतर होना चाहिए, और इसका कारण मुझे होमब्रेव पसंद है। होमब्रेव स्वचालित रूप से ऐप्पल द्वारा उपलब्ध कराए जाने वाले टूल और लाइब्रेरी की समानांतर प्रतियां स्थापित नहीं करेगा।"
bgupta

7
MacPorts देशी ऐप्स को अधिलेखित नहीं करता है, यह "एक निजी" सैंडबॉक्स "में पोर्ट किए गए सॉफ़्टवेयर को परिभाषित करता है जो इसे आपके ऑपरेटिंग सिस्टम और इसके विक्रेता द्वारा आपूर्ति किए गए सॉफ़्टवेयर के साथ परस्पर क्रिया करने से रोकता है ताकि उन्हें दूषित होने से रोका जा सके।" -
मैकपोर्ट्स

23

वर्तमान में, मैकपोर्ट के पास और अधिक पैकेज (~ 18.6 K) हैं, इसकी परिपक्वता के कारण, Homebrew सूत्र (~ 3.1K) हैं। हालांकि Homebrew धीरे-धीरे पकड़ रहा है।

मैकपोर्ट पैकेज एक व्यक्ति द्वारा बनाए रखा जाता है।

Macports संकुल के कई संस्करणों को अपने आस-पास रख सकता है, और आप चीजों को परखने के लिए उन्हें सक्षम या निष्क्रिय कर सकते हैं। कभी-कभी यह सूची दूषित हो सकती है और चीजों को वापस पाने के लिए आपको इसे मैन्युअल रूप से संपादित करना होगा, हालांकि यह बहुत कठिन नहीं है।

दोनों पैकेज मैनेजर नियमित रूप से अपडेट होने के लिए कहेंगे। इसमें कुछ समय लग सकता है।

नोट: आपके पास अपने सिस्टम पर दोनों पैकेज मैनेजर हो सकते हैं! यह एक या दूसरे का नहीं है। ब्रू शिकायत कर सकते हैं लेकिन मैकपोर्ट्स नहीं करेंगे।

इसके अलावा, यदि आप अजगर या रूबी पैकेज से निपट रहे हैं, तो जहां भी संभव हो आभासी वातावरण का उपयोग करें।


1
{{{कभी-कभी यह सूची दूषित हो सकती है और चीजों को वापस पाने के लिए आपको इसे मैन्युअल रूप से संपादित करना होगा, हालांकि यह बहुत कठिन नहीं है। }}} मैंने ऐसा कभी नहीं देखा है, हालांकि यह कहना संभव नहीं है कि यह संभव नहीं है। क्या हालात थे? क्या आपने बग ( trac.macports.org ) फाइल किया है ?
एलएसपीस

{{{दोनों पैकेज मैनेजर नियमित रूप से अपडेट होने के लिए कहेंगे। इसमें कुछ समय लग सकता है। }}} यह एक अजीब बयान की तरह लगता है। कई वर्षों के उपयोग में, मुझे केवल कुछ ही बार MacPorts को अपग्रेड करना याद है, और अद्यतन बल्कि त्वरित है। क्या आपका मतलब है कि बंदरगाहों को खुद को अक्सर अद्यतन करना होगा? खैर, वे हो सकते हैं, लेकिन यह एक अच्छी बात है, कमियां नहीं, मुझे लगता है! इसके अलावा, यह संभवतः ध्यान देने योग्य है कि मैकपोर्ट्स कुछ भी करने के लिए नहीं कहेंगे - अर्थात्, कोई नक़्क़ाशी नहीं है; आपको इसे आउट-ऑफ-डेट पैकेज के बारे में पूछना होगा
LSpice

18

डिफ़ॉल्ट रूप से, Homebrew आपके / usr / स्थानीय के लिए पैकेज स्थापित करता है। Macport कमांड को sudo को इंस्टॉल करने और अपग्रेड करने की आवश्यकता होती है (जैसे कि Ubuntu में)।

अधिक विस्तार के लिए:

यह साइट Hombrew का उपयोग करने का सुझाव देती है: http://deephill.com/macports-vs-homebrew/

जबकि यह साइट Macports का उपयोग करने के लाभों को सूचीबद्ध करती है: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

मैंने हाल ही में उबंटू से भी स्विच किया, और मुझे होमब्रेव (यह सरल और प्रयोग करने में आसान है!) का उपयोग करने में मजा आता है, लेकिन अगर आप सुडो का उपयोग करने के लिए संलग्न महसूस करते हैं, तो मैकपोर्ट्स जाने का बेहतर तरीका हो सकता है!


4
क्या आप कह रहे हैं कि होमबॉयर चीजों को /usr/localबिना सूडो की आवश्यकता के स्थापित करता है ?

1
@NgocPham क्या आपके पास इसके लिए कोई संदर्भ है?

16
@ वह साइट गलत है। या कम से कम, यह एक प्रमुख आधार छोड़ रहा है। यह कहता है "Apple ने हमारे लिए यह निर्देशिका छोड़ दी है। जिसका अर्थ है कि डिफ़ॉल्ट रूप से कोई / usr / स्थानीय निर्देशिका नहीं है, इसलिए मौजूदा उपकरणों को गड़बड़ाने के बारे में चिंता करने की कोई आवश्यकता नहीं है।" Apple /usr/localHomebrew के लिए नहीं छोड़ा है। ऐप्पल ने /usr/local"निष्पादन योग्य, पुस्तकालयों, आदि के लिए छोड़ दिया है जो मूल ऑपरेटिंग सिस्टम द्वारा शामिल नहीं हैं"। इसका मतलब है कि यह संभव है कि होमब्रे का उपयोग करने से पहले स्थापित किए गए टूल ने /usr/localऐसा बनाया हो कि इसे बिना संशोधित नहीं किया जा सके sudo। वे विकि पर चर्चा नहीं करते हैं।

2
@NgocPham मेरा कहना है कि मुझे विश्वास नहीं है कि Homebrew /usr/localरूट अनुमति के बिना उपयोग कर सकते हैं । /usrएक ताजा OS X स्थापित करने के लिए डिफ़ॉल्ट अनुमतियाँ रूट स्वामी हैं, किसी और के लिए कोई लिखित अनुमति नहीं है। यहां तक ​​कि बनाने के लिए /usr/local , Homebrew को रूट एक्सेस की आवश्यकता होगी। (मैं कुछ भी बचाव करने की कोशिश नहीं कर रहा हूं)

5
@Articuno मुझे लगता है कि मैं तुम्हें अब मिल गया। यह सिर्फ बयान है जो homebrewबिना सामान के स्थापित कर सकता है sudoक्योंकि जब यह खुद को स्थापित करता है, तो यह निर्देशिका शिथिलता पर अनुमति देने के लिए उपयोग करता है, sudoइसलिए यह /usr/localपासवर्ड को ट्रिगर किए बिना अंदर कुछ भी करने में सक्षम होगा । क्या इसका मतलब "पासवर्ड के बिना इंस्टॉल" भाग गलत है? मुझे ऐसा नहीं लगता! यह अभी भी सही है कि पासवर्ड के बिना सामान प्राप्त करने में सक्षम homebrew होगा
नोक फाम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.