2011-01-09 13 views
7

मैंने ghc 6.12.3, और फिर हास्केल प्लेटफ़ॉर्म स्थापित किया है। तो, स्वाभाविक रूप से, मैंghc मेरे कैबल स्थापित संकुल नहीं ढूंढ सकता

cabal install Bindings 

कौन सा ठीक काम करता है, और ~/.cabal/lib/बाइंडिंग-0.1 में पैकेज स्थानों कर

$ ghc test.hs 
test.hs:3:0: 
    Failed to load interface for `Bindings': 
     Use -v to see a list of the files searched for. 

: मैं एक परीक्षण कार्यक्रम को संकलित करने के कोशिश कर रहा हूँ। 2 समस्या यह है कि जब मैं ghc के साथ फिर से संकलित करने के लिए जाता हूं, तब भी यह उस पैकेज को नहीं मिला जिसे मैंने कैबल के साथ स्थापित किया है। वर्बोज़ मोड में संकलन देता है:

ghc -v test.hs 
Using binary package database: /home/ludflu/ghc/lib/ghc-6.12.3/package.conf.d/package.cache 
Using binary package database: /home/ludflu/.ghc/x86_64-linux 6.12.3/package.conf.d/package.cache 

एक और stackoverflow उपयोगकर्ता ने सुझाव दिया है, मैं करने की कोशिश की:

ghc-pkg describe rts > rts.pkg 
vi rts.pkg      # add the /home/ludflu/.cabal/lib to `library-dirs` field 
ghc-pkg update rts.pkg 

लेकिन कोई लाभ नहीं हुआ। खोज करने के लिए पैकेज निर्देशिकाओं की सूची में .cabal को कैसे जोड़ूं? धन्यवाद!

उत्तर

6

आप देख सकते हैं कि ghc-pkg list के साथ कौन से पैकेज स्थापित हैं। ऐसा हो सकता है कि आपको ghc पर -package <pkgname> के साथ संकुल निर्दिष्ट करने की आवश्यकता हो या मुझे लगता है कि संकुल सहित निर्भरताओं का पीछा करने के लिए --make जोड़ना है।

संपादित करें: बाइंडिंग पैकेज अप्रचलित है वास्तव में, the hackage page देखते हैं। यह पैकेज प्रबंधन समस्या नहीं है, उपलब्ध एकमात्र मॉड्यूल Bindings.Deprecated है, जिसे आप लोड करने में पूरी तरह से सक्षम हैं, भले ही यह एक खाली मॉड्यूल है। मेरा मानना ​​है कि प्रासंगिक भागों को bindings-<module> में तोड़ दिया गया है, इसलिए यदि आप बाइंडिंग कार्यक्षमता चाहते हैं तो आपको उन पैकेजों को देखना चाहिए।

+0

ghc-list संकुलों की एक सूची उत्पन्न करता है जिसमें बाइंडिंग शामिल है। ऐसा लगता है कि पैकेज को बहिष्कृत किया गया है - इसलिए यह नहीं मिला। -पेजेज तर्क जोड़ने से मदद नहीं मिली। मैंने कुछ अन्य उदाहरणों की कोशिश की जिन्होंने बाइंडिंग का उपयोग नहीं किया, और उन्होंने ठीक काम किया, इसलिए मैं कुछ अन्य समस्याओं पर जुनून करने जा रहा हूं! :) आपकी सहायता के लिए धन्यवाद। – nont

2

http://www.haskell.org/haskellwiki/Cabal-install

एक बात का विशेष रूप से अवगत होने के लिए, कि संकुल कबाल द्वारा डिफ़ॉल्ट रूप से स्थानीय स्तर पर स्थापित कर रहे हैं, आदेशों जबकि

runhaskell Setup configure 
runhaskell Setup build 
runhaskell Setup install 

डिफ़ॉल्ट रूप से विश्व स्तर पर स्थापित है। यदि आप वैश्विक स्तर पर एक पैकेज स्थापित करते हैं, तो स्थानीय पैकेजों को अनदेखा कर दिया जाता है। कैबल-इंस्टॉलेशन के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल को संपादित करके संशोधित किया जा सकता है।

मुझे runhaskell कमांड के साथ एक ही त्रुटि मिल रही थी। मैंने उस निर्देशिका में कैबल का उपयोग किया जिसमें .cabal फ़ाइल थी और त्रुटि को हल करने में सक्षम था।

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