位元詩人 建立 OCaml 開發環境:適用於 GNU/Linux 和 Windows

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

本文將引導讀者一步步從零開始建立完整的 OCaml 開發環境。

由於 OCaml 工具鏈(Toolchain)高度依賴 POSIX 環境,因此在 GNU/Linux 上的支援度與體驗普遍優於 Windows。為了讓流程更順暢,本文將先介紹 GNU/Linux 的建置步驟,隨後再說明 Windows 環境下的配置方法。

在 GNU/Linux 安裝 OCaml

使用系統套件管理工具

使用系統內建的套件管理工具安裝最為簡便,不過套件庫中的 OCaml 版本可能會比官方稍微舊一些。若您目前處於學習基礎語法的階段,暫時不需要過於在意版本號的差異。

以 Ubuntu / Debian 系統為例,請執行以下指令:

$ sudo apt install ocaml-platform

提示: GNU/Linux 發行版通常會將軟體拆分為多個獨立套件。為了獲得最完整的開發體驗,建議直接安裝上述的元套件(Meta-package)。

使用 opam 套件管理工具

opam 是 OCaml 官方的套件管理程式。首先,下載並執行 opam 的安裝腳本:

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

此腳本會下載一個靜態二進位檔案,您只需要將它放置於系統的任一環境變數路徑(PATH)即可。

接著,初始化 opam 並安裝預設版本的 OCaml:

$ opam init

在初始化過程中,終端機會出現一些互動式提問,請依據您的實際環境與需求回答(通常直接按 Enter 選擇預設值即可)。

以 Bash 編輯器為例,opam 會自動在您的 ~/.bashrc 檔案中寫入以下配置,用以設定環境變數:

test -r '/home/user/.opam/opam-init/init.sh' && . '/home/user/.opam/opam-init/init.sh' > /dev/null 2> /dev/null || true

配置完成後,系統便會開始編譯並安裝 OCaml。這個步驟會花費較長的時間,您可以先喝杯咖啡稍作休息。

安裝完成後,建議一次性裝齊核心開發工具:

$ opam install dune ocaml-lsp-server odoc ocamlformat utop

建議: 強烈建議將上述工具全部安裝,這能確保您隨後在閱讀各類 OCaml 教學時,擁有完整的開發體驗。

此外,以下套件主要用於自動設定文字編輯器(如 Emacs 或 Vim),您可以自由決定是否安裝:

$ opam install user-setup

在 Windows 安裝 OCaml

在 Windows 上原生開發 OCaml 通常需要依賴 MSYS2 環境,編譯速度會相對較慢。因此,建議平時在 WSL(Windows Subsystem for Linux)或 Linux 原生環境中進行程式碼編寫與測試,直到最後需要將二進位檔(Binary)移植到 Windows 時,再開啟 MSYS2 進行專案編譯。

安裝 MSYS2

您可以前往 MSYS2 官方網站下載安裝程式並依指示完成安裝,或者直接使用 Chocolatey 套件管理工具進行快速安裝:

> choco install msys2

安裝 opam 套件管理工具

請前往 opam 的 GitHub Release 頁面下載適用於 Windows 的版本,並將其放置於您的系統環境變數路徑(PATH)中。在 MSYS2 環境下,常見的放置位置為 /usr/local/bin$HOME/bin

安裝 OCaml

Windows 下的安裝流程與 GNU/Linux 大同小異,在此不再重複贅述。

⚠️ 重要注意事項
在執行安裝時,由於您已經處於 MSYS2 的 POSIX 相容環境中,請特別注意不要讓 opam 重複下載或安裝另一套 POSIX 環境,直接使用環境內現有的開發工具進行編譯即可。

指定 OCaml 編譯器版本(Switch)

若您的專案有跨平台部署的需求,或者需要與團隊成員協作,可以透過指定 OCaml 編譯器的版本號,來確保所有環境都具備完全相同的語法特性與相容性。

首先,列出所有目前可供安裝的 OCaml 版本:

$ opam switch list-available

接著,建立並安裝特定版本的編譯器環境。這裡以 5.4.1 版本為例:

$ opam switch create 5.4.1 ocaml-base-compiler.5.4.1

提示: 編譯過程同樣需要花費一些時間,可以先喝杯咖啡稍作休息。

安裝完成後,將當前的開發環境切換並鎖定至該版本,並更新環境變數:

$ opam switch set 5.4.1
$ eval $(opam env)

設置專案系統需求

💡 溫馨提示: 本文內所列出的版本號,均為琴子在撰寫此文當下的 OCaml 預設配置,日後官方版本必然會持續變動。實際佈署時,請務必依據官方與您專案的最新狀態自行確認。

為了確保專案在跨平台時能順利運作,您可以根據專案定位選擇以下兩種版本策略:

保持最大相容性

  • 建議版本: OCaml 4.14.4+

這是目前 Windows 環境下 OCaml 的預設版本,同時也是官方長期支援的 LTS(Long-Term Support)版本。

由於 Windows 對新版 OCaml 的原生支援稍微滯後,若您的專案有 Windows 原生編譯需求,建議以此版本作為最低相容性基準。

追求最新語言特性

  • 建議版本: OCaml 5.4.1+(或更高)

這是目前 GNU/Linux 環境下的主流預設版本。

如果您的專案主要運行在 Linux、WSL 或雲端容器環境,建議將專案鎖定在此版本分支。如此一來,便能完整享受多核心並行(Multicore Parallelism)、效能優化與各項最新的語法特性。

關於作者

位元詩人 (ByteBard) 是資訊領域碩士,喜歡用開源技術來解決各式各樣的問題。這類技術跨平台、重用性高、技術生命長。

除了開源技術以外,位元詩人喜歡日本料理和黑咖啡,會一些日文,有時會自助旅行。

近期在學習韓文,並將語言學習的心得轉化為開源專案,回饋社群。

這裡是位元詩人的 GitHub 個人頁