无法确定操作系统

时间:2013-01-19 03:43:06

标签: smlnj

当我进入终端(我安装了smlnj)并输入sml时,它给出了错误sml: unable to determine architecture/operating system。这是什么意思??? 我安装了像at this website这样的sml,但我不确定 - 说明错了吗? enter image description here

6 个答案:

答案 0 :(得分:18)

最近的OS X二进制安装程序的问题仍然存在,只是焦点转移到10.9 Mavericks和10.10 Yosemite版本的OS X.虽然根本原因在最近的源代码版本中得到了解决。

这就是为什么从现在开始解决这个问题只是为了拥有一个新编译的二进制包。为此,您最好通过homebrew安装smlnj。您可以使用以下命令执行此操作:

brew update
brew install smlnj

这将为您编译包,这样您就可以省去检查源代码并自行编译的麻烦。

只是为了清理系统并避免重复,您只需执行以下操作即可删除以前的安装:

sudo rm -rf /usr/local/smlnj*

对于星号:我有一个裸的smlnj文件夹,里面有110.76和一个smlnj-110.75文件夹,我想我之前试过安装两个不同的版本......

您可能需要删除自己创建的任何软链接,这些链接指向上一步中直接位于/ usr / local / removed下的旧版smlnj文件夹。

答案 1 :(得分:15)

如果您正在使用OSX 10.8或更高版本(uname -r为您提供12或更高的东西),SML / NJ pre 110.75在没有额外调整的情况下效果不佳。可以通过将{10.}选项(请参阅下面的12行)添加到.arch-n-opsys中的操作系统检测代码来修复known issue

    :
    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 :(得分:5)

作为paxdiablo答案的更新,如果你正在运行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仍然缺失。

答案 3 :(得分:1)

Sierra 10.12.6

通过Homebrew brew install smlnj

安装SML

修改您的.bash_profile并将export PATH=/usr/local/Cellar/smlnj/110.81/bin:$PATH添加到文件末尾。

source ~/.bash_profile之后应用新路径,以便系统添加新位置,然后在您键入sml

时知道找到所需文件的位置

答案 4 :(得分:0)

我在意外安装旧版SML / NJ后遇到了这个问题。我通过废弃/usr/local/smlnj删除了以前的安装,并使用the pre-built system of OS X for SML/NJ 110.78重新安装。最近的下载可以在下载 here下找到,这是未来寻求者应该咨询的内容,因为我的解决方案的细节可能会在他们到来时过时。

答案 5 :(得分:0)

升级Macbook后,我一直在努力工作数小时。以前,我在Macbook Air上使用OSX 10.8 Maverick,其发行版https://www.smlnj.org/dist/working/current/index.html#macos-installer实际上可以正常工作。

升级到运行OSX 10.14 Mojave的Macbook Pro后,在安装并添加到PATH后运行sml会给我OP错误消息。

在努力找到某种解决方案(包括此处标记为已接受的解决方案)后,最终起作用的是brew cask install smlnj