2013-01-19 10 views
13

निर्धारित करने में असमर्थ जब मैं टर्मिनल पर जाता हूं (मैंने smlnj स्थापित किया है) और मैं sml टाइप करता हूं तो यह मुझे sml: unable to determine architecture/operating system त्रुटि देता है। इसका क्या मतलब है??? मैंने इस at this website की तरह एसएमएल स्थापित किया है, लेकिन मुझे यकीन नहीं है - क्या निर्देश गलत हैं?
enter image description hereओएस

उत्तर

12

आप OSX 10.8 या बाद का उपयोग कर रहे हैं, तो एसएमएल/न्यू जर्सी पूर्व 110.75 कुछ अतिरिक्त फेरबदल के बिना भी अच्छी तरह से काम नहीं करता है (uname -r आप 12 या उससे अधिक के साथ शुरू कुछ देता है)। यह एक known issue 10.8 पसंद जोड़कर तय किया जा सकता है कि .arch-n-opsys में ओएस का पता लगाने कोड के लिए (12 नीचे लाइन देखें):

: 
    10*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.6 
    11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7 
    12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8 
    13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks 
    14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite 
    15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan 
    16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.12 Sierra 
    17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.13 High Sierra 

    *) exit 1;; 
esac;; 
+0

एक ही मुद्दे/3.x लिनक्स कर्नेल के लिए उपस्थित थे हैं फ़ाइल इसकी आवश्यकता को खोजने के लिए : एस –

+4

विशेष रूप से, आपको इसे '/ usr/local/smlnj/bin/.arch-n-opsys' में जोड़ना होगा। (इसे यहां उल्लेख करना क्योंकि लिंक टूटा हुआ है, और समस्या अभी भी 110.7 9 और 10.11 एल कैपिटन के साथ बनी हुई है ...) –

12

समस्या हाल के ओएस एक्स द्विआधारी संस्थापक के साथ अभी भी जारी रहती है तो बस फोकस 10.9 में ले जाया गया ओवर एक्स के मैवरिक्स और 10.10 योसमेट संस्करण। हालांकि हाल के स्रोत कोड संस्करण में मूल कारण हल हो गया है।

यही कारण है कि कुछ समय से इस मुद्दे को हल करने के बारे में सिर्फ ताजा संकलित बाइनरी पैकेज होने के बारे में है। और इसके लिए आप homebrew के माध्यम से smlnj इंस्टॉल करने के बेहतर हो सकते हैं। आप इन आदेशों के साथ यह कर सकते हैं:

brew update 
brew install smlnj 

यह आप के लिए पैकेज संकलन जाएगा ताकि आप स्रोत कोड बाहर की जाँच और संकलन अपने आप को ऐसा करने का मुसीबत छोड़ सकते हैं।

बस अपने सिस्टम को साफ और दोहराव से बचने के आप निम्न कार्य करके पूर्व स्थापना आसानी से हटा सकते हैं:

sudo rm -rf /usr/local/smlnj* 

तारांकन के लिए: मैं इसे अंदर 110.76 और एक smlnj के साथ एक नंगे smlnj फ़ोल्डर था -110.75 फ़ोल्डर मुझे लगता है कि मैंने पहले दो अलग-अलग संस्करणों को स्थापित करने की कोशिश की थी ...

आपको अपने द्वारा बनाए गए किसी भी सॉफ्टलिंक को हटाने की आवश्यकता हो सकती है जो पुराने smlnj फ़ोल्डर को सीधे/usr/local/पिछली बार हटा दी गई है कदम।

+0

मैंने टी ब्रू इंस्टॉल करने की कोशिश की, केवल निम्नलिखित प्राप्त करने के लिए: '/usr/local/Cellar/smlnj/110.77/SMLNJ_HOME/ बिन/.run/run.x86-डार्विन: घातक त्रुटि - के साथ अपरिपक्व अपवाद SysErr config/install.sh पर उठाया !!! बूट कोड असफल रहा, कोई ढेर छवि नहीं (sml.x86-darwin)। यह स्पष्ट रूप से एक ज्ञात मुद्दा है। https://github.com/Homebrew/homebrew/issues/32915 (साथ ही, क्या आप शायद लोगों को इंस्टॉल करने से पहले अपने ब्रू फॉर्मूला अपडेट करने की याद दिला सकते हैं? अगर आप लगातार ब्रू उपयोगकर्ता नहीं हैं तो भूलना आसान है)। –

+0

विशिष्टता के लिए 10 बार ऊपर उठाया गया। बहुत बुरा आइडल मतदान नियम लागू नहीं होते हैं। ;-) – vwvan

0

मैं इस मुद्दे में भाग गया जब मैंने गलती से एसएमएल/एनजे के पुराने संस्करण को स्थापित किया। मैंने /usr/local/smlnj को कचरा करके अपना पिछला इंस्टॉल हटा दिया और the pre-built system of OS X for SML/NJ 110.78 का उपयोग करके पुनः स्थापित किया। सबसे हालिया डाउनलोड डाउनलोडhere के साथ उपलब्ध है, जो कि भविष्य के साधकों से परामर्श लेना चाहिए, क्योंकि मेरे समाधान के विवरण संभवतया उनके आने के समय से बाहर हो जाएंगे।

5

paxdiablo के जवाब के लिए एक अद्यतन के रूप में, आप MacOS सिएरा (संस्करण 10.12) चला रहे हैं आप निम्न पंक्ति इनपुट करने की जरूरत है sml चलाने के लिए: अधिक संदर्भ में यह इस तरह दिखेगा के साथ तो

16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra 

:

 11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7 Lion 
     12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8 Mountain Lion 
     13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks 
     14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite 
     15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan 
     16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra 
     17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.13 High Sierra 
     *) exit 1;; 
    esac;; 

एसएमएल/न्यू जर्सी संस्करण 110.79 एल कैप्टन के ओएस एक्स अप कॉन्फ़िगर किया गया था, लेकिन सिएरा अभी भी याद आ रही थी।

+0

मेरे बेकन को बचाया। कार्य सत्रों के बीच अद्यतन ओएस। सब कुछ टूट गया। रवींद्र। जमानत के लिए धन्यवाद। – brntsllvn

0

सिएरा 10.12.6

Homebrew brew install smlnj के माध्यम से एसएमएल स्थापित

संपादित अपने .bash_profile और फ़ाइल के अंत तक export PATH=/usr/local/Cellar/smlnj/110.81/bin:$PATH जोड़ें।

कि source ~/.bash_profile के बाद नया पथ लागू करने के लिए, इससे आपका सिस्टम नए स्थानों को जोड़ता है और फिर जानता है, जहां जब आप लिखते हैं sml