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?
Nie można określić OS
Odpowiedz
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;;
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.
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
przegłosowano 10 razy dla specyficzności. Szkoda, że zasady głosowania na idola nie mają zastosowania. ;-) – vwvan
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ą.
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.
Uratowałem mój bekon. Zaktualizowany system operacyjny między sesjami roboczymi. Wszystko się zepsuło. Doh. Dzięki za kaucją. – brntsllvn
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
Te same kwestie są/były obecne w jądrze Linux 3.x : s –
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 ...) –