安装 OCaml

本指南将引导您完成 OCaml 的最小安装。这包括安装包管理器和编译器本身。我们还将安装一些平台工具,例如构建系统、编辑器支持以及其他一些重要的工具。

在此页面上,您将找到适用于 Linux、macOS、Windows 和 *BSD 的最新 OCaml 版本的安装说明。对于 Docker,除了设置 opam 外,Linux 说明适用。

注意:您将通过命令行界面 (CLI) 或 shell安装 OCaml 及其工具

安装 opam

OCaml 有一个官方的包管理器,opam,它允许用户下载和安装 OCaml 工具和库。Opam 还使处理需要不同 OCaml 版本的不同项目变得实用。

Opam 还会安装 OCaml 编译器。虽然存在其他选择,但 opam 是安装 OCaml 的最佳方法。尽管 OCaml 在大多数 Linux 发行版中都可用作包,但它通常已过时。

要安装 opam,您可以使用您的系统包管理器或下载二进制发行版。这些链接中提供了详细信息,但为了方便起见,我们使用包发行版

对于 macOS

如果您使用 Homebrew 安装

$ brew install opam

或者如果您使用 MacPorts

$ port install opam

注意:虽然使用 macOS 安装 opam 非常简单,但您以后可能会遇到 Homebrew 的问题,因为它更改了安装方式。可执行文件在 ARM64(较新的 Mac 使用的 M1 处理器)中找不到。解决此问题可能是一个相当复杂的过程,因此我们创建了一份简短的 ARM64 修复文档来解释这一点,以免偏离本安装指南。

对于 Linux

最好在 Linux 上以超级用户的身份使用系统的包管理器安装 opam。在 opam 网站上,查找所有安装方法的详细信息。所有受支持的 Linux 发行版中都打包了 2.0 以上版本的 opam。如果您使用的是不受支持的 Linux 发行版,请下载预编译的二进制文件或从源代码构建 opam。

如果您在 Debian 或 Ubuntu 中安装

$ sudo apt-get install opam

如果您在 Arch Linux 中安装

$ sudo pacman -S opam

注意:opam 的 Debian 包(也用于 Ubuntu)将 OCaml 编译器作为推荐的依赖项。默认情况下,会安装此类依赖项。如果您只想安装 opam 而无需 OCaml,则需要运行类似以下内容

sudo apt-get install --no-install-recommends opam

对于 Windows

最简单的方法是使用 WinGet 安装 opam

PS C:\> winget install Git.Git OCaml.opam

二进制发行版

如果您想要 opam 的最新版本,请通过二进制发行版安装它。在 Unix 和 macOS 上,您需要首先安装以下系统包:gccbuild-essentialcurlbubblewrapunzip。请注意,它们可能具有不同的名称,具体取决于您的操作系统或发行版。此外,请注意此脚本在内部调用 sudo

以下命令将安装适用于您的系统的最新版本的 opam

$ bash -c "sh <(curl -fsSL https://opam.ocaml.org/install.sh)"

在 Windows 上,winget 包由 opam 的开发人员维护,并使用 GitHub 上发布的二进制文件,但是您也可以使用等效的 PowerShell 脚本进行安装

Invoke-Expression "& { $(Invoke-RestMethod https://opam.ocaml.org/install.ps1) }"

高级 Windows 用户:如果您熟悉 Cygwin 或 WSL2,则 Windows 上的 OCaml 页面上描述了其他安装方法。

初始化 opam

安装 opam 后,您需要对其进行初始化。为此,请以普通用户身份运行以下命令。这可能需要几分钟才能完成。

$ opam init -y

注意:如果您在 Docker 容器内运行 opam init,则需要禁用沙箱,方法是运行 opam init --disable-sandboxing -y。这是必要的,除非您运行特权 Docker 容器。

确保您按照 opam init 输出末尾提供的说明完成初始化。通常,这是

$ eval $(opam env)

在 Unix 上,以及在 Windows 命令提示符下

for /f \"tokens=*\" %i in ('opam env') do @%i

或在 PowerShell 中

(& opam env) -split '\r?\n' | ForEach-Object { Invoke-Expression $_ }

Opam 初始化可能需要几分钟。在等待其安装和配置完成的同时,开始阅读OCaml 概览

注意:opam 可以管理称为切换的内容。在多个 OCaml 项目之间切换时,这一点至关重要。但是,在本“入门”系列教程中,不需要切换。如果您有兴趣,可以在这里阅读有关opam 切换的介绍。

安装过程中遇到任何问题?请务必阅读最新的发行说明。您可以在 https://github.com/ocaml/opam/issues 或 https://github.com/ocaml-windows/papercuts/issues 上提交问题。

安装平台工具

现在我们已成功安装了 OCaml 编译器和 opam 包管理器,让我们安装一些OCaml 平台工具,您需要这些工具才能在 OCaml 中获得完整的开发体验

  • UTop,一个现代交互式顶层环境 (REPL:读取-评估-打印循环)
  • Dune,一个快速且功能齐全的构建系统
  • ocaml-lsp-server 实现语言服务器协议以启用对 OCaml 的编辑器支持,例如在 VS Code、Vim 或 Emacs 中。
  • odoc 用于从 OCaml 代码生成文档
  • OCamlFormat 用于自动格式化 OCaml 代码

所有这些工具都可以使用单个命令安装

$ opam install ocaml-lsp-server odoc ocamlformat utop

您现在已准备好开始编码了。

检查安装

要检查一切是否正常运行,您可以启动 UTop 顶层环境

$ utop
────────┬─────────────────────────────────────────────────────────────┬─────────
        │ Welcome to utop version 2.13.1 (using OCaml version 5.1.0)!        └─────────────────────────────────────────────────────────────┘

Type #utop_help for help about using utop.

─( 00:00:00 )─< command 0 >──────────────────────────────────────{ counter: 0 }─
utop #

您现在位于 OCaml 顶层环境中,可以开始键入 OCaml 表达式。例如,尝试在 # 提示符处键入 21 * 2;;,然后按 Enter。您将看到以下内容

# 21 * 2;;
- : int = 42

恭喜!您已安装 OCaml!🎉

加入社区

确保您加入 OCaml 社区。您可以在 DiscussDiscord 上找到许多社区成员。如果您遇到任何问题,这些都是寻求帮助的好地方。

帮助改进我们的文档

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

OCaml

创新。社区。安全。