OCaml: Can't run utop after installing it
Asked Answered
S

4

10

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.

Serotherapy answered 23/12, 2013 at 7:27 Comment(3)
Can you try to execute in terminal this: eval `opam config env`Phelia
I tried this, but for some reason it didn't work. See my answer below.Serotherapy
Re-opening the terminal worked for me, installing Opam makes changes to .bashrc which requires bash to be restarted.Beaconsfield
D
9

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.

Dim answered 23/12, 2013 at 8:45 Comment(1)
Still doesn't seem to work. See my answer below to see the code that is returned when I enter eval 'opam config env'. Maybe that will provide some insight? Thanks for the response!Serotherapy
M
5

The methods to install OCaml utop in ubuntu in most of the online resources seem like kind of misleading users. The thing is when installing opam with sudo apt-get command there is no need to install OCaml again using same command because OCaml came with opam installation. so only thing you have to do is to correctly initialize the state of the opam which defines the OPAM root in your home folder.

So if you have installed any OCaml earlier first remove them to avoid conflicts.

sudo apt-get purge --auto-remove ocaml-source
sudo apt-get purge opam

then install opam.

sudo add-apt-repository ppa:avsm/ppa
sudo apt-get update
sudo apt-get install opam

initialize the state of the opam

opam init

if it shows a dependency missing warning try this commands,

opam install depext
opam depext conf-m4.1

then verify ocaml installation,

eval 'opam config env'
ocaml

install UTop then,

opam install utop
eval `opam config env`
utop

for detailed information and handle errors please refer this blog post.

Mealtime answered 3/7, 2016 at 7:52 Comment(0)
S
0

So, I did try eval 'opam config env' and this is what happens:

$ eval 'opam congif env'
CAML_LD_LIBRARY_PATH="/home/jharvard/.opam/4.01.0/lib/stublibs"; export CAML_LD_LIBRARY_PATH; 
PERL5LIB="/home/jharvard/.opam/4.01.0/lib/perl5"; export PERL5LIB;
OCAML_TOPLEVEL_PATH="/home/jharvard/.opam/4.01.0/lib/toplevel"; export OCAML_TOPLEVEL_PATH;
MANPATH="/home/jharvard/.opam/4.01.0/man:"; export MANPATH; PATH="/home/jharvard/.opam/4.01.0/bin:/etc/log50.d:/etc/log50.d:/usr/lib/qt-3.3/bin:/etc/log50.d:/usr/libexec/lightdm:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jharvard/.local/bin:/home/jharvard/bin"; export PATH;

And then it still says that the "utop" command is not found. The paths above are gibberish to me. Would anyone be able to look at what it returned to see if that indicates what the problem might be?

Serotherapy answered 24/12, 2013 at 1:26 Comment(2)
Your quote character is wrong. You need one like in the letter À. It is located on my keyboard near '1' buttonPhelia
Doh. That's exactly it. I had no idea that that character existed. Thank you so much!Serotherapy
F
0

My Ubuntu-14 / Mint was also "borked"

After reading Ubuntu section here ; https://opam.ocaml.org/doc/Install.html

AND removing .opam/ dir before again doing;

  1. opam init
  2. opam install utop

fixed it !

Flagitious answered 3/1, 2015 at 11:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.