opamでcoqをインストールしようとすると以下のようなエラーになった。
$ opam --version 2.0.5 $ opam list # Packages matching: installed # Name # Installed # Synopsis base-bigarray base base-threads base base-unix base camlp5 7.10 Preprocessor-pretty-printer of OCaml conf-findutils 1 Virtual package relying on findutils conf-m4 1 Virtual package relying on m4 ocaml 4.07.0 The OCaml compiler (virtual package) ocaml-base-compiler 4.07.0 Official release 4.07.0 ocaml-config 1 OCaml Switch Configuration ocamlfind 1.8.1 A library manager for OCaml $ opam install coq The following actions will be performed: ∗ install num 1.3 [required by coq] ∗ install coq 8.10.1* ===== ∗ 2 ===== Do you want to continue? [Y/n] y <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> [coq.8.10.1] found in cache [num.1.3] found in cache <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> [ERROR] The installation of num failed at "make install". #=== ERROR while installing num.1.3 ===========================================# # context 2.0.5 | linux/x86_64 | base-bigarray.base base-threads.base base-unix.base ocaml-base-compiler.4.07.0 | https://opam.ocaml.org/#662359aa # path ~/.opam/4.07.0/.opam-switch/build/num.1.3 # command ~/.opam/opam-init/hooks/sandbox.sh install make install # exit-code 2 # env-file ~/.opam/log/num-16298-0a5907.env # output-file ~/.opam/log/num-16298-0a5907.out ### output ### # [...] # make[1]: ディレクトリ '/home/kubo39/.opam/4.07.0/.opam-switch/build/num.1.3/src' から出ます # make -C toplevel install # make[1]: ディレクトリ '/home/kubo39/.opam/4.07.0/.opam-switch/build/num.1.3/toplevel' に入ります # sed -e 's/%%VERSION%%/1.3/g' META.in > META # ocamlfind install num-top META num_top.cma num_top.cmi num_top_printers.cmi # ocamlfind: Package num-top is already installed # - (file /home/kubo39/.opam/4.07.0/lib/num-top/META already exists) # Makefile:27: recipe for target 'install' failed # make[1]: *** [install] Error 2 # make[1]: ディレクトリ '/home/kubo39/.opam/4.07.0/.opam-switch/build/num.1.3/toplevel' から出ます # Makefile:14: recipe for target 'install' failed # make: *** [install] Error 2 <><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> ┌─ The following actions failed │ ∗ install num 1.3 └─ ╶─ No changes have been performed
これはocamlfind内のnumが邪魔をしており、opamのnumが入らないからのようだ。
以下のように ocamlfind remove
すればインストールできるようになった。
$ ocamlfind remove num num-top Removed /home/kubo39/.opam/4.07.0/lib/num/META Removed /home/kubo39/.opam/4.07.0/lib/num Removed /home/kubo39/.opam/4.07.0/lib/num-top/META Removed /home/kubo39/.opam/4.07.0/lib/num-top $ opam install coq The following actions will be performed: ∗ install num 1.3 [required by coq] ∗ install coq 8.10.1* ===== ∗ 2 ===== Do you want to continue? [Y/n] y <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> [coq.8.10.1] found in cache [num.1.3] found in cache <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ∗ installed num.1.3 ∗ installed coq.8.10.1 Done.