opamを用いたOCamlプロジェクトのセットアップ方法
OSはOSXを想定している。
事前準備
事前準備としてopamを導入する。
-
opamをインストールする
brew install opam
- opamを初期化する。任意のディレクトリで次のコマンドをたたく
opam init
~/.opam
が作成され、そこに最新のOCamlがインストールされる。
またこのコマンドをたたくと質問されるのでそれに答える。Do you want opam to modify ~/.zshrc? [N/y/f] (default is 'no', use 'f' to choose a different file)
y
と答えるA hook can be added to opam's init scripts to ensure that the shell remains in sync with the opam environment when they are loaded. Set that up? [y/N]
y
と答える
この質問は、opamの設定(たとえば使うOCamlのバージョンなど)を更新するスクリプトをなにかにhookさせて走らせるかどうか。Zshの場合、プロンプト表示にhookして更新スクリプトが走るようになる。作業ディレクトリごとにopamの設定は異なるのでyと答えておくのがよい。 - opamで用いる環境変数の更新をする
eval $(opam env)
- OCamlがインストールされていることを確認する
ocaml --version which ocaml # => `~/.opam/default/bin/ocaml`になっているはず
プロジェクトでOCamlをセットアップ
- インストールしたいOCamlのバージョンを探す
opam swtich list-available
#Name
列がocaml-base-compiler
となっている行を確認すればOK。 - バージョンを指定してOCamlをインストールする
# cd /path/to/your_project して opam switch create . ocaml-base-compiler.4.11.1
/path/to/your_project
配下に、_opam
ディレクトリができる。
このディレクトリにocamlコマンドや必要なパッケージがインストールされていく。 - 2でOCamlがインストールできたか確認する
eval $(opam env) ocaml --version which ocaml # => `/path/to/your_project/_opam/bin/ocaml`になっているはず
- 必要なパッケージをインストールする準備としてopamファイルを作成する
# cd /path/to/your_project して touch ${your_project_name}.opam
${your_project_name}.opam
に記載する。opam-version: "2.0" # => opam自体のバージョンが2以上でも"2.0"と書いておけばOK depends: [ # => 必要なパッケージを記載 "merlin" "dune" {= "2.7.1"} # => バージョン指定したい場合の書き方 ]
- opamファイルに記載された情報をもとに必要なパッケージをインストールする
# cd /path/to/your_project して opam install . --deps-only