auの日記

プログラミング初心者の日記。(auはハンドルネームです)

OPamを使ってOCamlのバージョン変更が出ない場合の解決法

auです。

OCamlの環境を構築していたのですが、OCamlのバージョンを変えなければいけなくなったのでやってみました。

その際に、Opam自体をアップデートしても変化がなかったので解決法を書いておこうと思います。

OCamlの環境は、だいぶ前にこのサイトのようなイメージで構築しました。
qiita.com

環境

macOS Catalina 10.15.7
opam: stable 2.0.7 (bottled), HEAD

やりたかったこと

やりたかったことは、OCamlを4.08.1から4.09.1に変更することです。

コンパイラの確認をします。これを行う前にopamのアップデートを行っています。

$ opam switch list-available compiler
中略
ocaml-base-compiler 4.07.0    Official release 4.07.0
ocaml-base-compiler 4.07.1    Official release 4.07.1
ocaml-base-compiler 4.08.0    Official release 4.08.0
ocaml-base-compiler 4.08.1    Official release 4.08.1

4.09.1がリストに入っていません。

$opam init をしても変化はありませんでした。

解決法

.opamフォルダを削除することで解決しました。

僕の場合は、「/Users/username/.opam」でした。

削除後には正常に表示されました。

$ opam init
$ opam switch list-available compiler
ocaml-base-compiler 4.08.1    Official release 4.08.1
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
ocaml-base-compiler 4.10.1    Official release 4.10.1
ocaml-base-compiler 4.11.0    Official release 4.11.0
ocaml-base-compiler 4.11.1    Official release 4.11.1

若干無理やり感は否めませんが解決できました。

インストーラーの何かを再度読み込むことができれば解決できたのかなとも思ったのですが、やり方を知らないのでこんな感じの解決法になりました。

あとは使いたいバージョンを指定して作成してください。

$ opam switch create 4.09.1
$ opam switch 4.09.1
$ ocamlc -version
4.09.1

無事にバージョンの変更ができました!