我正在使用 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
我到处搜索这条消息,但我无法得到任何提示。有没有人有解决这个问题的线索?谢谢。
问问题
367 次
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-threads
base-ocamlbuild
base-ocamlbuild
packages/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 回答