में स्थापित किया गया है। मैं ऐसे सिस्टम पर उपयोगकर्ता-स्पेस में लिनक्स पर स्थापित हास्केल प्लेटफ़ॉर्म और cabal-install
स्थापित करने का प्रयास कर रहा हूं जिसमें जीएनयू मल्टी-प्रेसिजन पैकेज (जीएमपी) स्थापित नहीं है।जीएचसी का उपयोग करना, जीएमपी के साथ कैबल उपयोगकर्ता-स्पेस
मैं GHC-6.12.1 स्थापित किया है और GHCi पाने के लिए LB_LIBRARY_PATH
की स्थापना करके काम कर lib निर्देशिका है जहाँ मैं जीएमपी स्थापित बिंदु पर करने में कामयाब रहे, लेकिन फिर अगले चरण में समस्याओं में भाग गया, cabal-install
काम करने के लिए हो रही है। यह जीएमपी को (स्थिर रूप से) लिंक करने की कोशिश करता रहा।
यह विफल रहता है क्योंकि जीएमपी सिस्टम में स्थापित नहीं है और ld
में कोई संकेत नहीं है कि पुस्तकालयों को कहां मिलना है, और कोई पर्यावरण परिवर्तनीय नहीं है (जिसे मैं जानता हूं) जो उपयोगकर्ता को ढूंढने के लिए ld कह सकता है जीएमपी की स्थापना, और (स्पष्ट रूप से) प्रासंगिक -L
ध्वज की आपूर्ति करने के लिए कैबल को कॉन्फ़िगर करने का कोई तरीका नहीं है।
ज्यादा निरर्थक खोज और हैकिंग के प्रयास मैं अपने खुद के ld
खोल स्क्रिप्ट है कि उपयुक्त -L
ध्वज के साथ प्रणाली ld
invokes स्थापित करने की मूर्खता से सरल विचार पर हिट करने के बाद। सभी समस्याओं को दूर चले गए हैं करने लगते हैं
#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "[email protected]"
इस स्क्रिप्ट एक निर्देशिका में इंस्टॉल होने के बाद मेरी
PATH
/usr/bin
से आगे पर
:
यह शेल पटकथा लेखन के 101, निश्चित रूप से है।
उन लोगों को जो एक उपयोगकर्ता निर्देशिका में GHC स्थापित किया है के लिए, वे sudo के साथ पिछले आदेश पर अमल करने में सक्षम हो जाएगा। जब मैंने मैन्युअल रूप से rts.pkg संपादित किया, तो मुझे नहीं पता था कि किस तरह का फ़ील्ड सेपरेटर कैबल इस्तेमाल किया गया था, इसलिए मैंने मूल पुस्तकालय निर्देशिका को मूल के बाद अपनी लाइन पर रखा है। – Emanuel
इन लाइब्रेरी डीआईआरएस के लिए विभाजक बस जगह है। –
libgmp.so को 'शामिल-डीआईआरएस' में से एक में कॉपी करें उदा। '/ घर/दिलावर/bin/lib/GHC-7.8.3/RTS-1.0'। यह मेरे लिए काम किया। – Dilawar