如何使用 opam(或其他包管理器)安装特定版本的 ocaml 编译器(和兼容包)?
我快速浏览了 opam 文档,但没有找到相关信息。
我需要 ocaml 编译器(最好是原生代码编译器)来构建 unison,一个用于文件同步的软件。我需要使用相同版本的 ocaml 在两台机器上构建一致,否则一致会发出错误并中止其职责(yiiii!)。
我尝试从 tar 球构建 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 Cinnamon 64 位的机器上观察到错误消息。这个函数是一些 unix/linux 库的一部分,而不是 ocaml 包的一部分吗?