2015-10-31 7 views
18

को समझना मैं समझ रहा हूं कि stack and stackage.org का उपयोग कैसे करें। जब मैंने पहली बार इसे इंस्टॉल किया और इसका इस्तेमाल किया, तो stackage.org एलटीएस-3.8 ("रिज़ॉल्वर") पर था। तब से, stackage.org में अब एलटीएस-3.11 है।हास्केल के स्टैक प्रोग्राम और रिज़ॉल्वर और एलटीएस संस्करण

सबसे पहले, मैं यह पुष्टि करना चाहता हूं कि इसका क्या अर्थ है। स्टैकेज संकुल का भंडार है जिसमें एक विशिष्ट एलटीएस संस्करण (3.8 कहें) के लिए, संकुल को एक साथ काम करने के लिए सत्यापित किया गया है। तो एलटीएस -88 के पैकेज एक साथ काम करते हैं, और एलटीएस-3.11 के पैकेज भी एक साथ काम करते हैं। आगे बढ़ते ...

जब मैं stack new projectname चलाने के लिए, ढेर मुझसे कहता है:

Checking against build plan lts-3.8 
Selected resolver: lts-3.8 

इसका मतलब यह है कि इस परियोजना को केवल संकुल और संस्करण LTS-3.8 के तहत सत्यापित किया गया उपयोग करने के लिए स्थापित किया गया है?

यदि अब मैं एक नई परियोजना शुरू करना चाहता हूं और नई परियोजना के साथ नवीनतम एलटीएस संस्करण का उपयोग करना चाहता हूं, तो मैं इसे डिफ़ॉल्ट रूप से करने के लिए कैसे कहूं?

यदि मैं एक नए एलटीएस संस्करण का उपयोग करने के लिए एक पुरानी परियोजना को "अपग्रेड" करना चाहता हूं तो क्या होगा?

उत्तर

14

क्या इसका मतलब यह है कि परियोजना केवल उन पैकेजों और संस्करणों का उपयोग करने के लिए स्थापित की गई है जो एलटीएस-3.8 के तहत सत्यापित किए गए थे?

बिल्कुल। (और यदि आपको कभी भी एलटीएस 3.8 सेट में शामिल पैकेजों की आवश्यकता नहीं है तो आप उन्हें stack.yaml सेक्शन के माध्यम से निर्दिष्ट कर सकते हैं। स्टैक उन्हें हैकेज से पकड़ लेगा और एलटीएस स्नैपशॉट या आपकी अन्य परियोजनाओं को प्रभावित किए बिना उन्हें अलग-अलग इंस्टॉल करेगा।)

यदि अब मैं एक नई परियोजना शुरू करना चाहता हूं और नई परियोजना के साथ नवीनतम एलटीएस संस्करण का उपयोग करना चाहता हूं, तो मैं इसे डिफ़ॉल्ट रूप से करने के लिए कैसे कहूं?

उदाहरण के लिए उपयोग करें stack new projectname --resolver=lts-3.11 एक नई परियोजना के लिए रिज़ॉल्यूशन सेट करने के लिए। सबसे हालिया एलटीएस स्नैपशॉट पर डिफ़ॉल्ट रूप से स्टैक करें जो आप पहले ही उपयोग कर रहे हैं, और इसलिए जब आपके पास नवीनतम एलटीएस भविष्य के साथ एक परियोजना है तो नई परियोजनाएं सूट का पालन करेंगी।

यदि मैं एक नए एलटीएस संस्करण का उपयोग करने के लिए एक पुरानी परियोजना को "अपग्रेड" करना चाहता हूं तो क्या होगा?

stack.yaml फ़ाइल में resolver फ़ील्ड बदलें। अगली बार जब आप परियोजना का निर्माण करेंगे तो परिवर्तन प्रभावी होगा।

संबंधित मुद्दे