2015-09-30 11 views
6

के बाद लापता ओएस एक्स एल कैप्टन, कबाल और GHC में अपग्रेड करने का बाद अपने सिस्टम पर नहीं रह पाए जाते हैं:हास्केल और कबाल एल कैप्टन अद्यतन

-bash: ghc: command not found 
-bash: cabal: command not found 

क्या मैं कबाल और GHC काम कर पाने के लिए क्या करना होगा ओएस एक्स एल कैपिटन पर?

+0

यदि आप कर सकते हैं, तो कृपया इसके लिए एचपी जिथब साइट पर कोई समस्या बनाएं ताकि इसे ट्रैक किया जा सके: https://github.com/haskell/haskell-platform/issues भी - प्रोग्राम अभी भी/usr/बिन (लेकिन निष्पादन योग्य नहीं हैं) या अपग्रेडिंग ने उन्हें पूरी तरह से हटा दिया है? – ErikR

+0

एप्पल से नहीं, किसी भी चीज़ के '/ usr' ('/usr/local' को छोड़कर) purges को अपग्रेड करना। – orome

उत्तर

11

मुझे एल कैपिटन समेत ओएसएक्स के सभी संस्करणों पर सबसे विश्वसनीय दृष्टिकोण मिला है।

  1. Install Homebrew

  2. भागो brew install ghc

  3. भागो brew install cabal-install

यह दृष्टिकोण आप आसानी से आसानी से नवीनतम संस्करण स्थापित करने के लिए और अधिक संस्करण स्थापित किया है और अनुमति देता है का उपयोग करते हुए उनके बीच स्विच brew switch कमांड। हास्केल प्लेटफार्म में इन गुणों की कमी है, यही कारण है कि उन्नत उपयोगकर्ता इसे किसी भी तरह से टालते हैं।

+0

यह एक अच्छा विचार है। मैं अपने मौजूदा हास्केल प्लेटफ़ॉर्म इंस्टॉलेशन से कैसे छुटकारा पा सकता हूं (मैं इसे पहले साफ़ करना चाहता हूं)? क्या मेरे मौजूदा पैकेज '/ उपयोगकर्ता/रॉय/लाइब्रेरी/हास्केल/ghc-7.10.2-x86_64/lib' में बने रहेंगे, और क्या मैं अभी भी उनका उपयोग कर सकता हूं? – orome

+2

यदि कोई बेहतर तरीका नहीं है तो आप फ़ाइलों को आसानी से हटा सकते हैं (स्थापना और पैकेज डीआईआर)। मैं किसी भी संघर्ष को उठाने की अपेक्षा नहीं करता हूं, भले ही आप कुछ भी नहीं करते हैं। ब्रू-स्थापित कैबल एक अलग निर्देशिका संरचना का उपयोग करता है, इसलिए आपको पैकेज को रखने के लिए थोड़ा सा गड़बड़ करना होगा, लेकिन मैं उन्हें बस छोड़ दूंगा और कैबल को अपना काम करने दें और आवश्यकता होने पर उन्हें इंस्टॉल करें। –

+0

वादा करता है। होमब्रू कहां स्थापित पैकेज रखता है? उस मामले के लिए इसे 'स्टाइलिश-हैकेल' और 'हलिंट' के लिए निष्पादन योग्य कहां रखा गया- मैं उन्हें नहीं ढूंढ सकता? – orome

1

मेरा मानना ​​है कि एल कैपिटन उपयोगकर्ताओं को /usr बदलने की अनुमति नहीं देता है, जहां हास्केल बाइनरी स्थापित हैं।

यदि आप /usr/local/bin में प्रोग्राम कॉपी/इंस्टॉल कर सकते हैं तो उन्हें वहां से काम करना चाहिए।

यदि प्रोग्राम अब/usr/bin में दिखाई नहीं दे रहे हैं, तो मैं सुझाव देता हूं कि एचपी को एक अलग विभाजन में पुनर्स्थापित करें। फिर उन्हें/usr/स्थानीय में कॉपी करें।

मुझे बताएं कि यह कैसा चल रहा है।

+0

कोई विचार है कि जीएचसी या कैबल का एक अपडेट योजना है जो इसे संबोधित करेगा। चारों ओर मैन्युअल रूप से चलती चीजें थोड़ा नाजुक लगती है। – orome

+0

बीटीडब्ल्यू: प्रतिलिपि एक विकल्प नहीं है क्योंकि ऐसा लगता है कि ईसी इंस्टॉल '/ usr' में नापसंद कुछ भी हटा देता है। – orome

10

संपादित करें: अब released version है जो इन समस्याओं को हल करता है।

यह सब एल कैपिटन में नई "rootless security" सुविधाओं के कारण होता है।

आपको प्रोग्रामों की प्रतिलिपि बनाने या पुनर्स्थापित करने की आवश्यकता नहीं है - /usr/bin में फ़ाइलें /Library/Frameworks/GHC.framework/ और /Library/Frameworks/HaskellPlatform.framework में उपलब्ध चीज़ों के लिए हमेशा सिम्लिंक थीं। इसलिए आपको वहां से फिर से सिमलिंक करने में सक्षम होना चाहिए (इस समय /usr/local/bin पर)।

भी https://github.com/haskell/haskell-platform/issues/205

उम्मीद है कि एक नए मंच रिहाई कि ठीक करता है इन मुद्दों जल्दी ही बाहर हो जाएगा देखें।

+0

एफडब्ल्यूआईडब्ल्यू, मैंने कल रात बाहर उम्मीदवार का परीक्षण किया, और ऐसा लगता है कि यह पूरी तरह से काम करता है। (और मैंने कल ही एससीएलवी को इसकी सूचना दी है, इसलिए यह सफलता की एक अतिरिक्त रिपोर्ट के रूप में नहीं गिना जाता है।) – Carl

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