2010-06-29 10 views
5

पर कैबल-इंस्टॉल कैसे बना सकता हूं प्रोग्रामिंग प्रश्न नहीं, लेकिन पहली बार मुझे ऐसा कुछ दिखाई देता है।
यूएनआर 1.6 (उबंटू 10.04 के आधार पर) जीएचसी के 6.12.1 संस्करण को स्थापित करता है।
तो, कैबल-इंस्टॉल-0.8.2 बनाने के लिए, मुझे
libsec6- parsec, mtl, network और zlib के संकुल को स्थापित करना होगा।
फिर, 'श ./bootstrap.sh' शुरू करने के बाद, मुझे मिलती है:मैं eeePc 701/उबंटू नेटबुक रीमिक्स 1.6 (ल्यूसिड)

GHC-6.12.1 के लिए इंस्टॉल किए गए पैकेज जांच रहा है ...
पारसेक पहले से स्थापित है और संस्करण ठीक है।
नेटवर्क पहले से ही स्थापित है और संस्करण ठीक है।
कैबल पहले ही स्थापित है और संस्करण ठीक है।
mtl पहले से ही स्थापित है और संस्करण ठीक है।
HTTP पहले से ही स्थापित है और संस्करण ठीक है।
zlib पहले से स्थापित है और संस्करण ठीक है।
[1 1] संकलन मुख्य (Setup.hs, Setup.o)
लिंक करना सेटअप ...
का विन्यास कबाल से स्थापित-0.8.2 ... कबाल से स्थापित-0.8.2 के लिए
Preprocessing निष्पादनयोग्य ...
बिल्डिंग कैबल-इंस्टाल-0.8.2 ...
[40 में से 1] वितरण वितरण। क्लाइंट.बिल्ड रीपॉर्ट्स। टाइप (वितरण/ग्राहक/बिल्डरपोर्ट्स/प्रकार एचएस, डिस्ट/बिल्ड/कैबल/कैबल- टीएमपी/वितरण/ग्राहक/बिल्डरपोर्ट/प्रकार .o)
[40 में से 2] वितरण संकलन। क्लाइंट। उपयोग (वितरण/ग्राहक/उपयोग। एचएस, डिस्ट/बिल्ड/कैबल/कैबल-टीएमपी/वितरण/ग्राहक/उपयोग। ओ)

... इस्तेमाल किया addPackageExcludeConstraint और प्रतिक्रिया के बारे में नहीं दो चेतावनी ...

[39 40] संकलन Distribution.Client.Install (वितरण/क्लाइंट/Install.hs, जिले/निर्माण/कबाल/कबाल-tmp/वितरण/ग्राहक/इंस्टॉल.ओ)
[40 में से 40] संकलन मुख्य (मुख्य.hs, dist/build/cabal/cabal-tmp/main.o)
dist/build/cabal/cabal को जोड़ना ...
collect2: संकेत 9 [प्रक्रिया arrêté] दौरान

त्रुटि के साथ समाप्त एलडी कबाल से स्थापित बूटस्ट्रैप:
कबाल से स्थापित पैकेज fai बिल्डिंग

लिंकिंग और संग्रह 2 (एक मिनट या उससे अधिक) के बीच, मेरी हार्ड ड्राइव ट्विंकल्स का एलईडी
जैसे कि बहुत सी फाइलें लिखी या पढ़ी जाती हैं।

मैं अगर यह प्रासंगिक है, लेकिन यहाँ निर्भरता के संस्करण हैं पता नहीं है
कबाल-1.8.0.2
HTTP-4000.0.6
MTL-1.1.0.2
नेटवर्क 2.2.1.7
पारसेक-2.1.0.1
zlib-0.5.2.0

+0

9 सिगकिल - जब इसे मार दिया जाता है तो एलडीडी कितनी मेमोरी है? शायद यह एक ओओएम स्थिति है? –

+0

वास्तव में, ईईपीसी 701 में 512 एमओ राम है और मेरा स्वैप 256 एमओ के लिए कॉन्फ़िगर किया गया है और सभी को क्रैश से पहले 100% उपयोग किया जाता है। लेकिन लिंकिंग चरण संकलन चरण (25% राम, 40% स्वैप) के रूप में चालाक क्यों नहीं है? – sauf

+0

यह 256 एमबी रैम के कारण ओएलपीसी एक्सओ -1 एस पर भी बुरी तरह विफल रहता है। मैंने सब कुछ करने की कोशिश की है जिसे मैं बनाने के लिए कैबल-इंस्टॉल प्राप्त करने के बारे में सोच सकता हूं। – Dan

उत्तर

1

मेरे पास एक ही समस्या है। मैं ghc-में किसी भी समय splitobjs = NO जोड़ता हूं। .ebuild। तो मैंने ghc का पुनर्निर्माण किया, लेकिन कैबल-इंस्टॉल अभी भी एलडी पास नहीं कर सकता है। क्योंकि मेरे gentoo बॉक्स में कोई स्वैप विभाजन नहीं है। इसलिए मैं एक अस्थायी स्वैप विभाजन बनाने के लिए अपनी 2 जी यूएसबी डिस्क का उपयोग करता हूं। तो मैं कैबल-स्थापित सफलता का निर्माण कर सकता हूं। मैंने पाया कि यह अतिरिक्त 100 एम स्वैप स्पेस का उपयोग करेगा और मेरे ईपैक में 512 एम मेमोरी है। तो मुझे लगता है कि आप एक यूएसबी डिस्क का उपयोग कर सकते हैं जिसमें 100 एम से अधिक स्पेस है। बस: mkswap/dev/एसडी * जोड़ा जा चुका/dev/एसडी *

+0

अच्छी नौकरी, QinGW, मैंने कभी भी यूएसबी स्वैप स्पेस बनाने के बारे में सोचा नहीं होगा! – sauf

7

क्या हो रहा है कि गिरी ld लिंकर प्रक्रिया मार रहा है क्योंकि बहुत सी स्मृति का उपयोग कर रहा है।

कारण ld इतना स्मृति उपयोग कर रहा है एक सुविधा है जो परिणाम यह है कि libHSbase.a जैसे मानक पुस्तकालयों छोटे-छोटे .o फ़ाइलों के हजारों की 10s शामिल है "विभाजन objs" कहा जाता है की वजह से है। लिंकर इस उपयोग-मामले के लिए अनुकूलित नहीं है और बहुत सारी मेमोरी का उपयोग कर समाप्त होता है।

"विभाजन ओब्जे" सुविधा का उद्देश्य वास्तव में उपयोग किए जाने वाले मानक पुस्तकालयों के बिट्स में लिंक करके संकलित प्रोग्राम को बहुत छोटा बनाना है। यह प्रत्येक संकलित हास्केल मॉड्यूल को प्रत्येक फ़ंक्शन के लिए अलग .o फ़ाइल में विभाजित करके काम करता है।

तो यह स्पष्ट रूप से आपकी नेटबुक की तरह कम स्मृति वाले सिस्टम के लिए एक समस्या है। यह आपके द्वारा लिंक की गई किसी भी चीज़ के साथ होने की संभावना है, न केवल cabal। Splitobjs सुविधा बंद के साथ स्रोत से ghc बनाने के लिए संभव है। उदाहरण के लिए, जेनेटू स्वचालित रूप से 512 एमबी रैम या उससे कम मशीनों के लिए करता है। इसलिए यदि आप अपनी नेटबुक पर विश्वसनीय रूप से ghc का उपयोग करना चाहते हैं तो आपको शायद build it from sourcesplitobjs के बिना build it from source की आवश्यकता होगी। आप एक और अधिक शक्तिशाली मशीन पर ghc बना सकते हैं और फिर इसे अपनी नेटबुक में स्थानांतरित कर सकते हैं।

भविष्य में यह समस्या दूर हो जाएगी जब हम लिनक्स पर डिफ़ॉल्ट रूप से साझा पुस्तकालयों का उपयोग करने के लिए स्विच करते हैं।

0

dd अगर =/dev/=/swapfile bs = 1024 गिनती के शून्य = 2048k mkswap/swapfile जोड़ा जा चुका/swapfile

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