OCaml Jupyter のインストールに手こずった
先週設定したテーマを進めようとしたら、環境整える段階でつまづきました。
テーマ→求めているものは、カーネルだった。 - OCamlによるライフハック
ひとつのシステムを動かすために、複数のプログラミング言語が使われていたり、多数のツールが複雑に組み合わさったりしているものです。
細かいことはよくわからんという人のために、必要なものが全て詰め込まれていて、それをインストールするだけで使えるようになるパッケージなるものが存在するわけです。
ちなみに、自分の場合はopamのjupyterというパッケージを入れようとした時に、いろいろとエラーを吐かれて先に進めなくなりました。
英語のエラーメッセージを読むのは結構辛いけど、どうにか解読してわかったことが、
- conf-gmp がビルド出来ていない
- 依存関係を確認して、いろいろなパッケージを入れる必要がある
- opamだけでは完結しない
jupyterのDependenciesを見たところ、結構な数のパッケージが入っていないことが判明しました。条件を満たしていたのが、
ocaml>=4.04.0
のみ。これはOCamlそのもののバージョンを4.04.0以上にしてくださいね、という意味です。大体は指定されたバージョンより上であれば問題ないのですが、
base64>=2.1.2 & <3.0.0
のように一定の範囲内でないとダメなケースも稀にあります。
試行錯誤してちょっとずつエラーの数が減っていったけど、それでも解決しなかったのがzmq。こちらはビルドに失敗しているようで、以下のような結果になりました。
#=== ERROR while compiling conf-gmp.1 =========================================# # context 2.0.1 | macos/x86_64 | ocaml-base-compiler.4.04.0 | https://opam.ocaml.org#5b9162fe # path ~/.opam/4.04.0/.opam-switch/build/conf-gmp.1 # command ~/.opam/opam-init/hooks/sandbox.sh build sh -exc cc -c $CFLAGS -I/opt/local/include -I/usr/local/include test.c # exit-code 1 # env-file ~/.opam/log/conf-gmp-88202-39e0b1.env # output-file ~/.opam/log/conf-gmp-88202-39e0b1.out ### output ### # + cc -c -I/opt/local/include -I/usr/local/include test.c # test.c:1:10: fatal error: 'gmp.h' file not found # #include <gmp.h> # ^~~~~~~ # 1 error generated. <><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫 ┌─ The following actions failed │ λ build conf-gmp 1 └─
gmpがないって怒られています。C言語のエラーなので、opamとは直接関係がないようです。 brew経由でgmpをインストールした後、改めてopam経由でjupyterのインストールを試みたところ、
<><> jupyter.2.4.0 installed successfully <><><><><><><><><><><><><><><><><> 🐫
と表示されたので、どうやらうまくいったようです。
最後にくだらないことですが、opamでラクダ🐫が出てくるのが面白いと思いました。