SML/NJ的安装说明------------------------------------以下是安装最新“工作”版本SML/NJ的说明在类Unix系统上,包括安装了开发人员工具的MacOX X。如果您正在运行MacOS X,但没有开发工具,则可以从我们提供的磁盘映像开始安装系统。请参阅MACOSXINSTALL了解详细信息。如果您正在运行Win32,请参阅WININSTALL。1.如果你很着急(而且你有网络连接)。。。-----------------------------------------------------------------选择一个地方进行安装,例如。$d=/usr/share/smlnj#或您喜欢的任何内容$mkdir$d个$cd$d美元-下载config.tgz,例如。$v=110.38#或您想要的版本$wget(美元)http://smlnj.cs.uchicago.edu/dist/working/$v/config.tgz-Gunzip和untar,例如。$gunzip(美元)应该与您的主机系统。)请记住,在配置/目标中进行选择包之间的依赖关系。例如,eXene需要cml和cml-lib。安装程序脚本“知道”这些依赖项并将自动计算“需要”关系。不过,如果您没有网络连接,那么您应该已经下载了整个传递闭包。(如果没有,安装程序将请提醒您。)如果选择…|。。。你需要---------------------------------------------------------------(始终)|boot。-.tgz型|运行时.tgz|src-smlnj|MLRISC.tgz|厘米.tgz|编译器.tgz|smlnj-lib.tgz公司|ml-yacc.tgz格式|系统.tgz|ml-yacc|ml-yac.tgz|ml-lex | ml-lex.tgz|ml-burg|ml-burg.tgz需要:ml lex||smlnj-lib|smlnj-lib.tgz|图util|cm.tgz|cml | cml.tgz需要:smlnj-lib||cml-lib | cml.tgz|eXene|eXene.tgz需要:cml、cml-lib||ckit|ckit.tgz|ml-nlffi-lib|ml-nlffir-lib.tgz|ml-nlffigen|ml-nlffigen.tgz需要:smlnj-lib|ckit公司||mlrisc-tools|mlrisc.tgz|无处可去|需要:mlrisc-tools||doc|-(当前不可用)2.2. 正在调整“预加载”。。。-----------------------------在运行安装程序之前(但在解压缩配置之后目录),您可以自定义预加载(直接或通过CM的“自动加载”机制)。为此,请在运行config/install.sh之前编辑config/inloads。2.3. 使用不同的ftp服务器(用于类似步骤1.的安装)---------------------------------------------------------------------如果您有smlnj.cs.uchicago.edu/dist的本地镜像,然后您可以通过指向自动URL来加快安装获取机制。存储库的URL存储在配置/srcarchiveurl。运行之前编辑此文件配置/安装.sh。2.4. 使用本地存储的柏油球------------------------------------这类似于步骤2.3。--config/srcarchiveurl中的URL除外应该是这样的文件:///usr/src/packages/smlnj/working/110.38(换句话说,URL应该拼出本地的名称恰好包含tarball的目录。请注意这种方法似乎不适用于某些版本的wget不理解文件://方案。)2.5. 我的路径上需要什么?-----------------------------------您应该在PATH中包含$d/bin。2.6. 我真的需要这些文件中的哪一个?------------------------------------------------安装程序完成后,目录$d将充满文件和子目录。如果你想的话,并不是所有的都需要使用系统。特别是,如果您对任何源代码都不感兴趣,您可以删除所有内容,但以下内容除外:$d/箱$d/lib美元2.7. 我可以在事后将文件移动到另一个目录吗?-----------------------------------------------------------对。步骤如下:假设您已经在$d下安装了所有内容,现在您希望将内容移动到其他一些目录$e(例如,e=/usr/share/smlnj):1.将(至少)$d/bin和$d/lib移动到$e:$mv$d/{bin,lib}$e2.在运行“sml”命令之前,设置环境变量SMLNJ_HOME指向$e:$export SMLNJ_HOME=$e如果您想将$e/lib的内容放在其他地方,那么将CM_PATHCONFIG指向路径配置文件所在的位置生活。(默认值为$SMLNJ_HOME/lib/pathconfig。)您还可以散布$e/lib的内容。如果你这样做,您必须编辑路径配置文件本身。请参阅CM有关路径定位和路径配置的更多信息,请参阅手册。2.8强制安装程序使用特定的URL getter程序----------------------------------------------------------------默认情况下,config/install.sh将尝试使用wget、curl和猞猁(按顺序)。如果您已经知道这些程序中的哪些您希望安装程序使用,然后设置环境变量URLGETTER分别为“wget”、“curl”或“lynx”。您还可以将URLGETTER设置为任何其他命令“foo”,只要它可以被调用为$foo美元 哪里是要获取的URL,并且存储结果的文件名。2.9这些“CM”目录在哪里?-------------------------------------CM元数据(源框架、编译文件、稳定库、GUID、,…)现在存储在名为“.cm”的目录下。我们改变了这个由于区分大小写的名称冲突,从原始“CM”中删除文件系统。然而,SML/NJ本身可以使用任何(合理的)选择元数据目录的名称--但为了一致性必须在安装时进行选择。要为元数据目录选择其他名称,请运行存在环境变量时的config/install.shCM_DIR_ARC。例如,如果您想拥有所有这些目录命名为“FOOBAR”,然后运行安装程序(假设使用Bourne-ish外壳)作为$CM_DIR_ARC=FOOBAR配置/安装.sh3.故障排除:-------------------3.1. 你认为你有网络连接,但安装程序失败了----------------------------------------------------------------------您可能没有以下任何可用命令在您的系统上:wget、lynx、curl。故障保护补救:按照步骤2.1进行,使用任何方法其他FTP客户端。替代补救方法:如果您有其他命令行工具来获取URL,为其制作包装(如果需要),以便它可以用两个参数调用:.然后将环境变量URLGETTER设置为(包装)工具并尝试运行安装程序。示例:假设您没有wget,但有一个名为“xget”。然后,您可以创建一个封装xget的shell脚本,例如。使用由单行组成的shell脚本“myxget”:$exec xget-nv-O$2$1一旦您有了myxget,只需运行:$URLGETTER=myxget配置/安装.sh----------------------------------------------------------------------------