Windows 上的 OCaml
我們建議新用戶安裝 opam。OCaml 套件管理器 opam 自 2.2 版本以來已完全支援 Windows,並提供最新的 OCaml 環境。
在某些情況下,其他 OCaml 安裝程式可能會很有用
- 如果您想開發應用程式,而且不熟悉 Unix,或者更關心穩定性和易用性而不是最新的編譯器,您可以使用 Diskuv OCaml
- 如果您只想執行應用程式,而不是開發,您可以使用 Docker 或 WSL2
這些建議基於下面的可用性表格
- 第一級完全支援最新的編譯器。
- 第二級支援,但在可能的情況下維護。
- 第三級由使用者支援。
╭──────────────────────────────────────────────────────────────────────────╮
│ Tier │ OCaml Version and Environment │ Support │
│ ------ │ ------------------------------- │ ----------------------------- │
│ Tier 1 │ OCaml 5.x with Opam 2.2+ │ Full support. │
│ Tier 2 │ 4.14.x with Diskuv OCaml │ Supported on select versions. │
│ Tier 3 │ 5.x with WSL2 │ User supported. │
│ Tier 3 │ 5.x with Docker │ User supported. │
╰──────────────────────────────────────────────────────────────────────────╯
在 Windows 上安裝 Opam
Opam 通過 winget 發佈於 Windows。要安裝它,請在您的終端機中執行以下命令
> winget install Git.Git OCaml.opam
我們建議從 winget
安裝 Git;但是,您可以省略此步驟,並在需要時使用您偏好的方法安裝 Git。Opam 將會尋找相容的 Git,如果找不到,它會提示您安裝一個。
安裝後,啟動一個新的 shell 以存取 opam 二進位檔。
$ opam --version
2.2.1
一旦 opam 安裝完成,執行 opam init
命令來設定您的 opam 環境。
您會注意到擷取儲存庫資訊的階段需要一段時間才能完成。這是正常的(目前),所以我們建議使用者在執行時準備自己喜歡的熱飲。
opam 需要類似 Unix 的環境才能運作。預設情況下,opam 依賴 Cygwin,並且也相容於 MSYS2。
在初始化時,opam 會掃描您的機器以尋找可用的 Unix 環境,並提示您選擇您偏好的選項。我們建議讓它建立自己的內部 Cygwin 安裝,並由 opam 管理。這減少了其他與此類環境互動的工具可能造成的干擾。把它想像成一個沙盒環境。
Opam 在初始化時的預設行為是安裝一個新的 switch
以及一個 > 4.05
版本的 OCaml 編譯器。預設情況下,opam 在建立 switch 時選擇 mingw
作為 C 編譯器,但請注意,您可以選擇安裝替代方案,例如 msvc
,使用以下命令
opam install system-msvc
在 opam init
完成後,執行以下命令來更新您的環境
在 CMD 上
> for /f "tokens=*" %i in ('opam env --switch=default') do @%i
在 PowerShell 上
> (& opam env --switch=default) -split '\\r?\\n' | ForEach-Object { Invoke-Expression $_ }
Opam 會在每次需要時顯示 shell 更新命令。
您可以使用以下命令驗證您的安裝
> ocaml --version
The OCaml toplevel, version 5.2.0
> ocaml
OCaml version 5.2.0
Enter #help;; for help.
# print_endline "Hello OCamleers!!";;
Hello OCamleers!!
- : unit = ()
#
您現在應該有一個可運作的 OCaml 開發環境。如果您遇到任何問題或需要進一步的協助,請隨時諮詢 OCaml 社群。
其他安裝環境
WSL2
如果您只需要在 Windows 機器上執行 OCaml 程式,最簡單的解決方案是使用 Windows Subsystem for Linux 2 (WSL2)。WSL2 是一項功能,允許 Linux 程式直接在 Windows 上執行。WSL2 比 WSL1 容易且快速得多。Microsoft 有完整的 設定 WSL2 安裝步驟。
在您安裝 WSL2 並選擇一個 Linux 發行版(我們建議 Ubuntu LTS)後,您可以按照 安裝 OCaml:Linux 和 macOS 的安裝 步驟進行。
Docker 映像
ocaml/opam
Docker Hub 儲存庫現在包含定期更新的 Windows 映像。這包括使用 msvc
和 mingw
的映像。如果您熟悉 Docker,這可能是在您的機器上取得可運作的 Windows 環境的更簡單方法。
Diskuv OCaml
Diskuv OCaml ("DKML") 是一個 OCaml 發行版,支援以純 OCaml 進行軟體開發。這個發行版因以下幾點而獨特:
- 完全相容 OCaml 標準,例如 opam、Dune 和 OCamlFind。
- 透過支援標準原生編譯器(例如 Visual Studio 和 Xcode)專注於「原生」開發(桌面軟體、行動應用程式和嵌入式軟體)。
- 透過簡化的安裝程式和簡單的生產力命令實現易用性。高中、大學和大學生應該能夠使用它
- 透過可重複性、版本控制和從原始碼建置來確保安全性。
要安裝 DKML,請簡要查看以下內容
-
您需要待在您的電腦旁,並為任何 Windows 安全性彈出視窗按下「是」。在 DKML 安裝程式完成安裝兩個程式(
Visual Studio Installer
和Git for Windows
)後,您可以離開您的電腦 90 分鐘。 -
首次安裝可能會收到以紅色列印的通知。如果您看到它,請重新啟動您的電腦,然後重新啟動您的安裝,以便 Visual Studio Installer 可以完成。該通知看起來像這樣
- FATAL [118acf2a]. The machine needs rebooting. - ... - >> The machine needs rebooting. <<< - ... - FATAL [5f927a8b]. - A transient failure occurred. - ... - >> A transient failure occurred. <<<
-
您可能會被要求接受來自
Certum Code Signing CA SHA2
頒發的Open Source Developer, Gerardo Grignoli
的gsudo
可執行檔憑證。
然後下載並執行
- 具有 Git 和 Visual Studio 編譯器的 OCaml 4.14.0:setup-diskuv-ocaml-windows_x86_64-1.1.0.exe
使用以下 shell (PowerShell 或命令提示字元) 中的命令檢查 OCaml 是否已正確安裝。$ 命令下方的行顯示 OCaml 版本和 toplevel 版本的預期輸出
$ where.exe ocaml
C:\Users\frank\AppData\Local\Programs\DiskuvOCaml\usr\bin\ocaml.exe
$ ocaml -version
The OCaml toplevel, version 4.14.0
要瞭解更多關於 Diskuv OCaml 的資訊,請參閱 官方 Diskuv OCaml 文件。
Windows 上 OCaml 的編輯器支援
Visual Studio Code (VSCode)
如果您使用 opam 安裝,您需要在執行 VSCode 的路徑中新增 opam switch 字首。
如果您使用 DKML 安裝程式,您需要
- 前往
檔案
>喜好設定
>設定
檢視 (或按下Ctrl ,
)。 - 選擇
使用者
>擴充功能
>OCaml Platform
。 - 取消選取
OCaml: 使用 OCaml Env
。
如果您使用 WSL2,您將從 VSCode 遠端連線到您的 WSL2 執行個體。Microsoft 有一篇 有用的部落格文章,介紹如何將 WSL2 和 Visual Studio Code 連接起來。
Vim 和 Emacs
對於 Vim 和 Emacs,使用 opam 安裝 Merlin 系統
$ opam install merlin
安裝程序會列印有關如何將 Merlin 與您的編輯器連結的說明。
如果您使用 Vim,預設的 Cygwin Vim 將無法與 Merlin 搭配使用。您需要單獨安裝 Vim。除了安裝 Merlin 時列印的通常說明之外,您可能還需要在 Vim 中設定 PATH
let $PATH .= ";".substitute(system('opam config var bin'),'\n$','','''')