当我进入终端(我安装了smlnj)并输入sml
时,它给出了错误sml: unable to determine architecture/operating system
。这是什么意思???
我安装了像at this website这样的sml,但我不确定 - 说明错了吗?
答案 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
修改您的.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
。