How do I install the OCaml Core library on (Arch) Linux x86_64?

$ 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://software.opensuse.org/download.html?project=home%3Aocaml&package=ocaml
# 
# * Debian/Ubuntu: sudo apt-get install camlp4-extra
# * RHEL/CentOS/Fedora: sudo yum install ocaml-camlp4
# 
### stderr ###
# ./check-camlp4.sh: line 3: camlp4orf: command not foun

I answered yes to the auto-complete scripts question during opam init. Also, the truncated portion of the error suggests the following:

Please install a system-wide version of camlp4. This is necessary since you are using OCaml 4.02.1 and the system compiler switch (which uses your preexisting installation rather than compile one from scratch).

If you cannot install a 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://github.com/ocaml/camlp4
            license: LGPLv2
  installed-version: 4.02.1+system [system]

Once 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 a different 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

Answers


You should switch from a system compiler to an opam's one. Then the compiler's sources will be downloaded and compiled automatically as well as all prerequisites. In order to switch use the following command:

opam swich 4.02.1

instead of 4.02.1 you can use any available compiler of course.

The actual error, is that for some reason (I think due to a rolling release model) you have different versions of camlp4 and OCaml compiler, so that they can't talk to each other.


Need Your Help

set view parameters from another action

php zend-framework view

so im my zend framework aplication and im trying to set the view sucess var to true in order to show a sucess messega.

“Object doesn't support this property or method IE” error in Javascript possibly from using hasOwnProperty?

javascript jquery internet-explorer for-in-loop hasownproperty

I'm getting this error in IE8 and IE7 for some reason. I'm looping through all keys within my object and it keeps telling me Object doesn't support this property or method on this on:

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.