安装特定 OCaml 编译器版本

TLDR

使用 opam switch set 手动选择要使用的切换,并使用 dune-workspace 自动在不同的环境中运行命令。

编译环境使用 opam 切换进行管理。典型的工作流程是在项目中使用本地 opam 切换,但有时您可能需要选择不同的编译环境(即不同的编译器版本)。例如,在 OCaml 的旧版本/新版本上运行单元测试。

为此,您需要创建全局 opam 切换。要使用给定版本的编译器创建 opam 切换,您可以使用

opam switch create 4.14.0 ocaml-base-compiler.4.14.0

这将创建一个名为 4.14.0 的新切换,其编译器版本为 4.14.0

可以使用以下命令检索可用编译器版本的列表:

opam switch list-available

这将列出所有已配置的 Opam 存储库的可用编译器版本。

创建切换后(或您已经拥有想要使用的切换),您可以运行

opam switch set <switch_name>
eval $(opam env)

以使用此切换配置当前环境。

如果是新切换,则需要使用 opam install . --deps-only 重新安装您的依赖项(请参阅“安装依赖项”)。

或者,您可能希望自动在给定的一组编译环境中运行命令。为此,您可以在项目的根目录中创建一个 dune-workspace 文件,并在其中列出要使用的 opam 切换

(lang dune 2.0)
(context (opam (switch 4.11.0)))
(context (opam (switch 4.12.0)))
(context (opam (switch 4.13.0)))

您运行的所有 Dune 命令都将在列出的所有切换上运行。例如,使用上面的定义

dune runtest --workspace dune-workspace

Dune 将为 OCaml 4.11.04.12.04.13.0 运行测试。

仍然需要帮助?

帮助改进我们的文档

所有 OCaml 文档都是开源的。看到错误或不清楚的地方?提交拉取请求。

OCaml

创新。社区。安全。