2011-02-28 21 views
16

जैसा कि मुझे पता है cabal फ्रीबीएसडी के pkg_add जैसे पैकेजों की स्थापना का प्रबंधन करने के लिए एक प्रोग्राम है। लेकिन ghc-pkg नामक एक और टूल है। मुझे नहीं पता कि दो अलग-अलग कार्यक्रम क्यों हैं। उनमें से प्रत्येक की भूमिका क्या है और वे कैसे संबंधित हैं?`ghc-pkg` और 'cabal` प्रोग्राम कैसे संबंधित हैं? (हास्केल)

+0

http://stackoverflow.com/questions/2706667/what-is-the-relationship-between-ghc-pkg-and-cabal – Boris

+0

@ बोरीस का डुप्लिकेट समझना मुश्किल है कि मुझे यह क्यों नहीं मिला शीर्षक ... – Eonil

+0

हाँ, यह अजीब है। वे बहुत समान हैं। – Boris

उत्तर

12

कैबल हास्केल के लिए एक इमारत और पैकेजिंग लाइब्रेरी है, जैसे "हास्केल ऑटोोटूल"। यह .cabal फ़ाइलों को पढ़ता है और हास्केल पैकेज में आमतौर पर फ़ाइल Setup.hs होती है जो पैकेज बनाने के लिए कैबल का उपयोग करती है। फिर कैबल-इंस्टॉल पैकेज द्वारा प्रदत्त cabal कमांड भी है। यह Setup.hs स्क्रिप्ट और कुछ पैकेज प्रबंधन फ़ंक्शंस चलाने के लिए आदेश प्रदान करता है, जैसे सीधे हैकेज से संकुल को संस्थापित करना। आपको this blogpost by Ivan Miljenovic पढ़ना चाहिए जो कैबल, कैबल-इंस्टाल और हैकेज की भूमिका को अच्छी तरह से बताता है।

ghc-pkg जीएचसी के पैकेज डेटाबेस को पोक करने के लिए निम्न स्तर का टूल है। कैबल का उद्देश्य हर हास्केल कंपाइलर के साथ काम करना है, जबकि ghc-pkg स्पष्ट रूप से जीएचसी के लिए विशिष्ट है। आप कुछ भी बनाने के लिए ghc-pkg का उपयोग नहीं कर सकते हैं, आप केवल उन पैकेजों को पंजीकृत कर सकते हैं जिन्हें आपने अन्यथा बनाया है।

2

कैबल कुछ अतिरिक्त सुविधाओं के साथ ghc-pkg के लिए सिर्फ एक इंटरफ़ेस परत है। Ghc-pkg को जानना केवल महत्वपूर्ण है क्योंकि अनइंस्टॉल कार्यक्षमता कोबल में जोड़ा नहीं गया था, लेकिन सीधे ghc-pkg के साथ किया जा सकता है।

+1

ghc-pkg अनइंस्टॉल नहीं कर सकता है। आप शायद अपंजीकृत मतलब था। और पंजीकरण रद्द करने के बाद भी, मैं अभी भी अनियंत्रित पैकेज का उपयोग ठीक कर सकता हूं। इस प्रकार, यह एक अनइंस्टॉल नहीं है। –