2013-01-19 15 views
13

Kiedy wchodzę na terminal (zainstalowałem smlnj), a ja wpisuję sml, pojawia się błąd sml: unable to determine architecture/operating system. Co to znaczy??? Zainstalowałem sml w ten sposób at this website, ale nie jestem pewien - czy instrukcje są nieprawidłowe?
enter image description hereNie można określić OS

Odpowiedz

12

Jeśli używasz OSX 10.8 lub nowszy (uname -r daje coś począwszy od 12 lub wyższy), SML/NJ pre 110,75 nie działa zbyt dobrze bez jakiegoś dodatkowego szczypanie. Jest to known issue że może być ustalona przez dodanie Wybór 10.8 (zobacz poniższą linię 12) do kodu detekcji OS w .arch-n-opsys:

: 
    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

Te same kwestie są/były obecne w jądrze Linux 3.x : s –

+4

W szczególności musisz dodać go do '/ usr/local/smlnj/bin/.arch-n-opsys'. (Wspominając o tym, ponieważ link jest zepsuty, a problem nadal występuje po 110,79 i 10,11 El Capitan ...) –

12

Problem z ostatnich OS X instalatorów binarne nadal utrzymują się po prostu skupić przeniesiony do 10,9 Mavericks i wersje 10.10 Yosemite OS X. Chociaż główna przyczyna jest rozwiązana w najnowszej wersji kodu źródłowego.

Dlatego od jakiegoś czasu rozwiązanie tego problemu polega właśnie na świeżo skompilowanym pakiecie binarnym. A do tego może być lepiej zainstalować smlnj przez homebrew. Można to zrobić z tych poleceń:

brew update 
brew install smlnj 

To będzie skompilować pakiet dla Ciebie, dzięki czemu można oszczędzić trudu sprawdzania kodu źródłowego i robi kompilację samodzielnie.

Wystarczy oczyścić system i uniknąć powielania można usunąć poprzednią instalację po prostu wykonując następujące czynności:

sudo rm -rf /usr/local/smlnj* 

dla gwiazdką: Miałem jeden folder gołe smlnj z 110.76 wewnątrz niego i jednym smlnj -110,75 folderu Chyba wcześniej próbowałem zainstalować dwie różne wersje ...

Może być konieczne usunięcie wszelkich utworzonych przez ciebie miękkich linków do starszego folderu smlnj bezpośrednio pod/usr/local/removed w poprzednim krok.

+0

Próbowałem zainstalować brew, tylko po to, aby otrzymać: '/usr/local/Cellar/smlnj/110.77/SMLNJ_HOME/ bin/.run/run.x86-darwin: Błąd krytyczny - Niezamknięty wyjątek SysErr z podniesiony pod adresem config/install.sh !!! Kod bootowania nie powiódł się, nie ma obrazu sterty (sml.x86-darwin). "To najwyraźniej znany problem. https://github.com/Homebrew/homebrew/issues/32915 (Czy możesz też przypomnieć ludziom, aby zaktualizowali swoje receptury parzenia przed instalacją? Łatwo jest zapomnieć, jeśli nie jesteś częstym użytkownikiem naparu). –

+0

przegłosowano 10 razy dla specyficzności. Szkoda, że ​​zasady głosowania na idola nie mają zastosowania. ;-) – vwvan

0

Wpadłem na ten problem po tym, jak przypadkowo zainstalowałem starszą wersję SML/NJ. Usunąłem moją poprzednią instalację, niszcząc /usr/local/smlnj i ponownie zainstalowałem, używając the pre-built system of OS X for SML/NJ 110.78. Najnowszy plik do pobrania jest dostępny pod pobrańhere, o czym powinni się przekonać przyszli poszukiwacze, ponieważ dane szczegółowe mojego rozwiązania będą prawdopodobnie nieaktualne do czasu, kiedy się pojawią.

5

jako aktualizacja odpowiedź paxdiablo, o ile używasz MacOS Sierra (wersja 10.12) należy wprowadzić następującą linię dostać SML trwania:

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

więc z większym kontekście będzie to wyglądać tak :

 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;; 

SML/NJ wersja 110,79 miał OS x do El Capitan skonfigurowany, ale wciąż brakuje Sierra.

+0

Uratowałem mój bekon. Zaktualizowany system operacyjny między sesjami roboczymi. Wszystko się zepsuło. Doh. Dzięki za kaucją. – brntsllvn

0

Sierra 10.12.6

Install SML poprzez Homebrew brew install smlnj

zmieniać swoich .bash_profile i dodać export PATH=/usr/local/Cellar/smlnj/110.81/bin:$PATH do końca pliku.

Po tym source ~/.bash_profile zastosować nową ścieżkę tak, aby system dodaje nowe lokalizacje i wtedy wie, gdzie znaleźć plik potrzebuje po wpisaniu sml