Подтвердить что ты не робот

Невозможно определить ОС

Когда я иду на терминал (я установил smlnj), и я набираю sml, он дает мне ошибку sml: unable to determine architecture/operating system. Что это значит??? Я установил sml как на этом веб-сайте, но я не уверен, что инструкции неверны?
enter image description here

4b9b3361

Ответ 1

Если вы используете OSX 10.8 или новее (uname -r дает вам что-то, начиная с 12 или выше), SML/NJ pre 110.75 не работает слишком хорошо без дополнительной настройки. Это известная проблема, которая может быть исправлена ​​путем добавления выбора 10.8 (см. Строку 12 ниже) в код обнаружения ОС в .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;;

Ответ 2

Проблема с недавними двоичными установщиками OS X по-прежнему сохраняется, только фокус переместился на 10.9 Mavericks и 10.10 версии Yosemite OS X. Хотя основная причина решена в недавней версии исходного кода.

Вот почему с некоторого времени сейчас решение этой проблемы связано с только что скомпилированным двоичным пакетом. И для этого вам может быть лучше установить smlnj через homebrew. Вы можете сделать это с помощью следующих команд:

brew update
brew install smlnj

Это скомпилирует пакет для вас, чтобы вы могли избавить себя от необходимости проверять исходный код и выполнять компиляцию самостоятельно.

Чтобы очистить систему и избежать дублирования, вы можете удалить предыдущую установку, выполнив следующие действия:

sudo rm -rf /usr/local/smlnj*

Для звездочки: у меня была одна голая папка smlnj с 110.76 внутри нее и одна папка smlnj-110.75, я предполагаю, что раньше я пытался установить две разные версии...

Вам может потребоваться удалить любые созданные вами программные ссылки, указывающие на более старую папку smlnj непосредственно в /usr/local/deleted на предыдущем шаге.

Ответ 3

Как обновление для paxdiablo answer, если вы используете macOS Sierra (версия 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;;

Версия SML/NJ 110.79 имела конфигурацию OS X до El Capitan, но Sierra все еще отсутствовала.

Ответ 4

Сьерра 10.12.6

Установить SML через Homebrew brew install smlnj

Отредактируйте .bash_profile и добавьте export PATH=/usr/local/Cellar/smlnj/110.81/bin:$PATH в конец файла.

После этого source ~/.bash_profile применить новый путь, чтобы ваша система добавила новые местоположения, а затем знает, где найти нужный файл при вводе sml

Ответ 5

Я столкнулся с этой проблемой после того, как случайно установил более старую версию SML/NJ. Я удалил свою предыдущую установку путем перебора /usr/local/smlnj и переустановил с помощью предварительно построенную систему OS X для SML/NJ 110.78. Самая последняя загрузка доступна в разделе Загрузки здесь, о чем должны обращаться просители в будущем, в качестве деталей моего решения вероятно, будут устаревшими к моменту их появления.

Ответ 6

Я боролся с этим в течение нескольких часов после обновления моего Macbook. Ранее я работал на OSX 10.8 Maverick на Macbook Air, для которого дистрибутив https://www.smlnj.org/dist/working/current/index.html#macos-installer действительно работал нормально.

После обновления до Macbook Pro под управлением OSX 10.14 Mojave, запуск sml после установки и добавления в PATH выдаст мне сообщение об ошибке OP.

После попыток найти какое-то решение, в том числе помеченное как принятое здесь, в итоге получилось brew cask install smlnj.