$ ocaml -version The OCaml toplevel, version 4.02.1 $ opam --version 1.2.0 $ opam init $ opam install core #=== ERROR while installing camlp4.4.02.1+system ==============================# # opam-version 1.2.0 # os linux # command sh ./check-camlp4.sh # path /home/john/.opam/system/build/camlp4.4.02.1+system # compiler system (4.02.1) # exit-code 1 # env-file /home/john/.opam/system/build/camlp4.4.02.1+system/camlp4-32324-f0f09f.env # stdout-file /home/john/.opam/system/build/camlp4.4.02.1+system/camlp4-32324-f0f09f.out # stderr-file /home/john/.opam/system/build/camlp4.4.02.1+system/camlp4-32324-f0f09f.err ### stdout ### # ...[truncated] # 4.02 by switching to a local installation via `opam switch 4.02.1`. # # Here are some installation instructions for camlp4 if you obtained OCaml # via the OPAM binary packages: # # http:
I answered yes to a question about script autocomplete during opam init . In addition, the truncated part of the error assumes the following:
Please install the system-wide version of camlp4. This is necessary because you are using OCaml 4.02.1 and the system compiler (which uses your existing installation, rather than compiling it from scratch).
If you cannot install the system-wide camlp4, then you can still use OCaml 4.02 by switching to a local installation via opam switch 4.02.1
# pacman -S camlp4 $ opam install camlp4 $ opam info camlp4 package: camlp4 version: 4.02.1+system repository: default homepage: https:
Again...
$ opam install core #=== ERROR while installing herelib.109.35.02 =================================# # opam-version 1.2.0 # os linux # command make # path /home/john/.opam/system/build/herelib.109.35.02 # compiler system (4.02.1) # exit-code 2 # env-file /home/john/.opam/system/build/herelib.109.35.02/herelib-31366-c61e7b.env # stdout-file /home/john/.opam/system/build/herelib.109.35.02/herelib-31366-c61e7b.out # stderr-file /home/john/.opam/system/build/herelib.109.35.02/herelib-31366-c61e7b.err ### stdout ### # ...[truncated] # ocamlfind ocamlopt -shared -linkall lib/herelib.cmxa -o lib/herelib.cmxs # ocamlfind ocamldep -syntax camlp4o -package camlp4.extend -package camlp4.quotations -package camlp4.lib -modules lib/pa_here.mli > lib/pa_here.mli.depends # ocamlfind ocamlc -c -g -syntax camlp4o -package camlp4.extend -package camlp4.quotations -package camlp4.lib -I lib -o lib/pa_here.cmi lib/pa_here.mli # + ocamlfind ocamlc -c -g -syntax camlp4o -package camlp4.extend -package camlp4.quotations -package camlp4.lib -I lib -o lib/pa_here.cmi lib/pa_here.mli # File "lib/pa_here.mli", line 1: # Error: The files /usr/lib/ocaml/pervasives.cmi # and /usr/lib/ocaml/camlp4/Camlp4.cmi make inconsistent assumptions # over interface Pervasives # Command exited with code 2. # Makefile:21: recipe for target 'build' failed ### stderr ### # File "setup.ml", line 232, characters 8-26: # Warning 3: deprecated: String.set # Use Bytes.set instead. # File "setup.ml", line 2385, characters 6-24: # Warning 3: deprecated: Lazy.lazy_from_fun # Use Lazy.from_fun instead. # E: Failure("Command ''/usr/bin/ocamlbuild' lib/herelib.cma lib/herelib.cmxa lib/herelib.a lib/herelib.cmxs lib/pa_herelib.cma lib/pa_herelib.cmxa lib/pa_here lib.a lib/pa_herelib.cmxs -use-ocamlfind -tag debug' terminated with error code 10") # make: *** [build] Error 1
Do I need to switch to another compiler?
$ opam switch system C system System compiler (4.02.1) -- -- 3.11.2 Official 3.11.2 release -- -- 3.12.1 Official 3.12.1 release -- -- 4.00.0 Official 4.00.0 release -- -- 4.00.1 Official 4.00.1 release -- -- 4.01.0 Official 4.01.0 release -- -- 4.02.0 Official 4.02.0 release -- -- 4.02.1 Official 4.02.1 release
source share