如何使用opam安装特定版本的ocaml编译器
问题描述:
如何使用opam(或其他软件包管理器)安装特定版本的ocaml编译器(和兼容软件包)?如何使用opam安装特定版本的ocaml编译器
我快速浏览了opam文档,但没有找到相关信息。
我需要ocaml编译器(最好是本机代码编译器)来构建一致性文件同步软件。我需要使用相同版本的ocaml在两台机器上建立一致性,否则一致发出错误并放弃其职责(yiiii!)。
我从焦油球试图建设ocaml的版本4.04.0,然后用它建立统一,但在机器的一个统一的构建与错误消息失败,
make[1]: Entering directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
ocamlc -o mkProjectInfo unix.cma str.cma mkProjectInfo.ml
File "mkProjectInfo.ml", line 1:
Error: Error while linking /home/norio/Downloads/unison/ocaml_for_unison/lib/ocaml/unix.cma(Unix):
The external function `unix_has_symlink' is not available
if [ -f `which etags` ]; then \
etags *.mli */*.mli *.ml */*.ml */*.m *.c */*.c *.txt \
; fi
make[1]: Leaving directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
我不我希望为探索unix_has_symlink
函数而奋斗,并致力于探索图书馆依赖的沼泽,在这个沼泽中,许多开发人员在文明来临之前就已经失败了,并且包管理者被发明出来。
有没有类似的, opam install ocamlc-4.04
和opam install all-packages
?
补遗
unix_has_symlink
左右正在运行Linux Mint的18肉桂64位机器上观察到的错误消息。这个函数是一些unix/linux库的一部分,而不是ocaml包吗?
答
要切换到编译器的特定版本不
opam switch <compiler-version>
例如,
opam switch 4.03.0
要开始使用特定版本,即,当你第一次安装OPAM,只是做
opam init --compiler=<version>
例如,
opam init --compiler=4.03.0
要列出可用的版本做
opam switch
要看到更多的,做
opam switch -a
你介意我问有关你得到这个错误的机器上的操作系统的详细信息?我认为'unix_has_symlink'是一个非常标准的Unix事物。 –
@MikePierce感谢您的评论。我在原帖中添加了信息。 – norio
这是一个糟糕的解决方案,但它看起来像调用'unix_has_symlink'的otherlib是新的并且不在旧版本的OCaml中(不是OCaml 4.01.0)。所以如果这个问题没有得到解决,你可以安装一个旧版本。 :/ –