OCaml:安装后无法运行utop

时间:2013-12-23 07:27:46

标签: installation ocaml opam utop

我正在尝试通过Real World OCaml书籍学习OCaml。他们有一个指南,我应该安装Core包和utop。然而,虽然我似乎使用Opam成功安装了这两个,但当我尝试使用它们时它们都不起作用。

我知道它们已经安装,因为当我再次尝试安装它们时,我收到了这条消息:

$ 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).

但是,当我尝试输入“utop”来启动utop时,它不起作用。

$ utop
bash: utop: command not found

当我尝试打开核心时也一样:

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

这里发生了什么?我是编程的新手,所以可能有一些关于安装的东西,我只是不理解。

4 个答案:

答案 0 :(得分:9)

关于utop,您似乎没有$PATH。你做了:

$ eval `opam config env`

如果您希望在新的shell中正确设置opam,则应将以下内容添加到.bashrc

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

至于无法打开Core.Std,您当然无法在shell中打开它,此命令必须在utop中发出。

答案 1 :(得分:3)

在大多数在线资源中在ubuntu中安装OCaml utop的方法看起来像是一种误导用户。问题是当使用sudo apt-get命令安装opam时,不需要使用相同的命令再次安装OCaml,因为OCaml附带了opam安装。因此,您唯一需要做的就是正确初始化opam的状态,该状态定义了主文件夹中的OPAM根目录。

因此,如果您之前安装了任何OCaml,请先删除它们以避免冲突。

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

然后安装opam。

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

初始化opam的状态

opam init

如果它显示依赖缺失警告,请尝试使用此命令,

opam install depext
opam depext conf-m4.1

然后验证ocaml安装,

eval 'opam config env'
ocaml

然后安装UTop,

opam install utop
eval `opam config env`
utop

有关详细信息和处理错误,请参阅此blog post

答案 2 :(得分:0)

所以,我确实尝试了eval'opam config env',这就是:

$ 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;

然后它仍然说没有找到“utop”命令。上面的路径对我来说是胡言乱语。是否有人能够查看它返回的内容,看看是否表明问题可能是什么?

答案 3 :(得分:0)

我的Ubuntu-14 / Mint也被“borked”

在这里阅读Ubuntu部分; https://opam.ocaml.org/doc/Install.html

和 在再次执行之前删除.opam / dir;

  1. opam init
  2. opam install utop
  3. 修好了!