MacでサクッとOCamlの環境構築をする(+複数バージョンの管理対応)

Macにサクッと環境構築をしていきます。

環境

  • MacOS Catalina 10.15.4
  • bash

OPAMのインストール

OPAMはOCaml Package Managerの略でOCamlのパッケージの管理をやってくれます。
パッケージマネージャですが、OCaml本体のインストールもできます。

brew install opam
OPAM uses ~/.opam by default for its package database, so you need to
initialize it first by running:

$ opam init

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/opam/2.0.7: 48 files, 11.4MB

OPAMの初期設定

OPAMを利用するにあたって初期設定が必要なので、次のコマンドを実行します。
この時に、OCamlも同時にインストールされます。

opam init

OPAMパッケージデータベースは、 ~/.opam に保存されます。OPAMがおかしくなった場合は、 ~/.opamを削除すれば初期化できます。 opam initのときに聞かれる質問は基本的にはyで大丈夫です。

~/.bash_profileに次の内容を追記しておきます。

eval $(opam env)

必要な環境変数の設定等を行っています。
追記したら設定を有効にします。

source ~/.bash_profile

ここまでくるとocamlコマンドが実行できるようになります。

複数バージョンのOCamlを利用する

opam switch では複数のOCamlのバージョンを利用する事ができます。
他の言語で提供されている~env系に近いですね。

別のバージョンをインストールする

先ほどのopam initのタイミングでインストールされたOCamlのバージョンの確認をしてみます。

opam switch
#  switch   compiler                    description
→  default  ocaml-base-compiler.4.10.0  default

次のコマンドで利用できるOCamlコンパイラのバージョンが確認できます。

opam switch list-available compiler
# Listing available compilers from repositories: default
# Name              # Version # Synopsis
ocaml-base-compiler 3.07      Official 3.07 release
ocaml-base-compiler 3.07+1    Official 3.07+1 release
ocaml-base-compiler 3.07+2    Official 3.07+2 release
~中略
ocaml-base-compiler 4.09.0    Official release 4.09.0
ocaml-base-compiler 4.09.1    Official release 4.09.1
ocaml-base-compiler 4.10.0    Official release 4.10.0

現時点では最新のバージョン(4.10.0)が入っているので一つ前のバージョン(4.09.1)を入れてみたいと思います。

opam switch create 4.09.1

ソースコードからコンパイルしてインストールするので少し時間がかかります。

利用するバージョンの変更

opam switch set [バージョン]
eval $(opam env)

不要なバージョンの削除

opam switch remove [バージョン]

以上若干長くなりましたが、サクッと環境構築を行ってみました。

参考

https://camlspotter.gitlab.io/blog/2018-08-08-opam-switch/