OCaml: Can't run utop after installing it

akim330 picture akim330 · Dec 23, 2013 · Viewed 8.9k times · Source

I'm trying to learn OCaml through the Real World OCaml book. They have a guide by which I am supposed to install the Core package and utop. However, while I seem to be successfully installing both of these using Opam, neither of them works when I try to use them.

I know that they're installed, because when I try to install them again, I get this message:

$ opam install utop core
[NOTE] Package utop is already installed (current version is 1.10).
[NOTE] Package core is already installed (current version is 109.55.02).

However, when I try to enter "utop" to start utop, it doesn't work.

$ utop
bash: utop: command not found

Same when I try to open core:

$ open Core.Std
Couldn't get a file descriptor referring to the console

What's going on here? I'm new to programming so there might be something about installation that I'm just not understanding.

Answer

Daniel Bünzli picture Daniel Bünzli · Dec 23, 2013

Regarding utop, it seems that you don't have in your $PATH. Did you do:

$ eval `opam config env`

If you want opam to be correctly automatically setup in your new shells you should add the following to your .bashrc:

. ~/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

As for not being able to open Core.Std, you won't of course be able to open it in your shell, this command must be issued in utop.