1

我正在使用 ocaml 和 opam 做一些工作。我需要 3.08.3 版本的 ocaml,所以我尝试通过 opam 安装这个版本。 opam switch install 3.08.3 我希望上面的命令会成功安装它。但它不能。opam-switch 无法安装 3.* 版本的 ocaml,并显示以下错误消息。 [ERROR] Could not resolve set of base packages 我到处搜索这条消息,但我无法得到任何提示。有没有人有解决这个问题的线索?谢谢。

4

1 回答 1

3

compilers/3.08.3/3.08.3/3.08.3.comp,描述该编译器版本的基本包的文件告诉:

packages: [
  "base-unix"
  "base-bigarray"
  "base-threads"
  "base-ocamlbuild"
]

所以它需要base-unix,base-bigarray和。但是, 的包描述说:base-threadsbase-ocamlbuildbase-ocamlbuildpackages/base-ocamlbuild/base-ocamlbuild.base/opam

ocaml-version: [>= "3.10" & < "4.03"]

它说ocamlbuild以前不可用3.10。事实上,ocamlbuild自 3.10 以来引入。编译器描述文件很可能3.08.3.comp有错误。如果您能在https://github.com/ocaml/opam-repository/issues上提出错误票以进行修复,那就太好了。

作为一种解决方法,我建议手动安装 OCaml 3.08,而不是使用 OPAM 命令:我认为在不可用的 3.08 中使用 OPAM 几乎没有任何好处ocamlbuild,因为大多数 OPAM 包都假定存在ocamlbuild.

您还可以使用3.08.3.comp不带"base-ocamlbuild". opam repo有关详细信息,请参阅文档。

于 2016-04-01T08:43:30.660 回答