2011-05-23 15 views
7

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

मैं स्रोत और बूटस्ट्रैप किए गए कैबल इंस्टॉल से जीएचसी 7 संकलित करने में कामयाब रहा। इसके बाद मैंने cabal install hamlet किया और इसे काम करने की उम्मीद की। कोई भाग्य नहीं!

मुझे कैबल/जीएचसी से निम्नलिखित अजीब त्रुटि संदेश मिलता है। क्या कोई मेरी मदद कर सकता हैं?

$ cabal install hamlet      Resolving dependencies... 
Configuring hamlet-0.8.2... 
Preprocessing library hamlet-0.8.2... 
Building hamlet-0.8.2... 
[ 1 of 14] Compiling Text.MkSizeType (Text/MkSizeType.hs, dist/build/Text/MkSizeType.o) 
[ 2 of 14] Compiling Text.Shakespeare (Text/Shakespeare.hs, dist/build/Text/Shakespeare.o) 
[ 3 of 14] Compiling Text.Hamlet.Parse (Text/Hamlet/Parse.hs, dist/build/Text/Hamlet/Parse.o) 

Text/Hamlet/Parse.hs:113:13: 
    Warning: A do-notation statement discarded a result of type String. 
     Suppress this warning by saying "_ <- ($) try string "!--"", 
     or by using the flag -fno-warn-unused-do-bind 
[ 4 of 14] Compiling Text.Hamlet.Quasi (Text/Hamlet/Quasi.hs, dist/build/Text/Hamlet/Quasi.o) 
[ 5 of 14] Compiling Text.Css   (Text/Css.hs, dist/build/Text/Css.o) 
[ 6 of 14] Compiling Text.Cassius  (Text/Cassius.hs, dist/build/Text/Cassius.o) 
Loading package ghc-prim ... linking ... done. 
Loading package integer-gmp ... linking ... done. 
Loading package base ... linking ... done. 
Loading package array-0.3.0.2 ... linking ... done. 
Loading package containers-0.4.0.0 ... linking ... done. 
Loading package pretty-1.0.1.2 ... linking ... done. 
Loading package template-haskell ... linking ... done. 
Loading package filepath-1.2.0.0 ... linking ... done. 
Loading package old-locale-1.0.0.2 ... linking ... done. 
Loading package old-time-1.0.0.6 ... linking ... done. 
Loading package unix-2.4.2.0 ... linking ... done. 
Loading package directory-1.1.0.0 ... linking ... done. 
Loading package process-1.0.1.5 ... linking ... done. 
Loading package bytestring-0.9.1.10 ... linking ... done. 
Loading package transformers-0.2.2.0 ... linking ... done. 
Loading package mtl-2.0.1.0 ... linking ... done. 
Loading package parsec-3.1.1 ... linking ... done. 
Loading package failure-0.1.0.1 ... linking ... done. 
Loading package deepseq-1.1.0.2 ... linking ... done. 
Loading package text-0.11.0.8 ... linking ... done. 
Loading package blaze-builder-0.3.0.1 ... linking ... done. 
Loading package blaze-html-0.4.1.1 ... linking ... done. 
Loading package ffi-1.0 ... linking ... done. 
ghc: mmap 36864 bytes at (nil): Operation not permitted 
ghc: Try specifying an address with +RTS -xm<addr> -RTS 
cabal: Error: some packages failed to install: 
hamlet-0.8.2 failed during the building phase. The exception was: 
ExitFailure 1 
+0

जिज्ञासा से बाहर, आपने स्रोत से जीएचसी क्यों स्थापित किया? क्या इससे समस्या हो सकती है? – Tarrasch

+0

मुझे ऐसा करना पड़ा क्योंकि जेनेरिक जीएचसी 7 बाइनरी वेबफैक्शन पर काम नहीं करती थी, जबकि 6.12 बाइनरी ने किया था। मुझे याद नहीं है कि सटीक त्रुटि क्या थी, लेकिन मैंने स्रोत से जीएचसी 7 संकलित करने की कोशिश की और यह दर्द रहित ढंग से काम किया। –

+0

ठीक है मैंने अभी एक अलग (स्थानीय) मशीन पर जीएचसी की स्थापना की है और मुझे अभी एहसास हुआ है कि जीएचसी का द्विआधारी वितरण क्यों काम नहीं करता था। बाइनरी जीएचसी स्थापित करने के बाद, मुझे त्रुटि मिली - 'कॉन्फ़िगर करें: त्रुटि: ghc की आपकी स्थापना कार्य में प्रकट नहीं होती है। यह एक साधारण प्रोग्राम संकलित नहीं कर सकता है (विवरण के लिए config.log देखें)। यदि आपने जेनेरिक बाइनरी टैरबॉल से ghc इंस्टॉल किया है तो यह के लायक है यह जांच कर रहा है कि आपके पास 'gmp' सी लाइब्रेरी और हेडर फ़ाइलें इंस्टॉल हैं। (डेबियन-आधारित सिस्टम पर इस पैकेज को libgmp3-dev कहा जाता है।) ' उस स्रोत से संस्थापित किया गया है। –

उत्तर

8

ठीक है मुझे लगता है कि समस्या हल हो गई है और उम्मीद है कि यह दूसरों की मदद करता है।

समस्या यह है कि वेबफैक्शन आपको/tmp में संग्रहीत फ़ाइलों को निष्पादित करने की अनुमति नहीं देता है। कैबल से त्रुटि संदेश बहुत निश्चित रूप से भ्रमित है।

फिक्स कैबल इंस्टॉल चलाने से पहले आपके होमपैथ (जहां ऐसा कोई प्रतिबंध लागू नहीं होता है) में पर्यावरण चर सेट करने के लिए है।

alias cabalinstall='export TMPDIR=~/tmp; cabal install' 

यह सुनिश्चित tmpdir सही ढंग से किसी भी कबाल पैकेज स्थापित करने के लिए प्रयास करने से पहले सेट कर दिया जाता है कि बनाता है - मैं बस एक उपनाम बनाया।

+1

यह, यह बहुत कुछ है। मैं इसके साथ दिनों से संघर्ष कर रहा हूं! मैंने जीएचसी 7.0.4 और जीएचसी 7.4.1 को फिर से संकलित किया जब तीन बार कैबल को ठीक करने का प्रयास किया गया था जब यह टूटा नहीं था। +5 – Xorlev

+1

बहुत धन्यवाद, इस वजह से मुझे मेरे जेनेटू इंस्टॉलेशन के साथ परेशानी हो रही थी। Gentoo/nomp पर 'noexec' ध्वज का उपयोग कर रहा था। – LambdaStaal

+0

स्पष्ट रूप से प्रोजेक्ट डीआईआर (मेरे मामले में कैबल सैंडबॉक्स डीआईआर) को भी आपकी होम निर्देशिका से नीचे होना चाहिए (सिम्लिंक काम नहीं करता है)। – STF

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