首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCaml:安装后无法运行utop

OCaml:安装后无法运行utop
EN

Stack Overflow用户
提问于 2013-12-23 15:27:46
回答 4查看 9.3K关注 0票数 10

我正试着通过真实世界的OCaml这本书来学习OCaml。他们有一个指南,我应该按照这个指南来安装Core包和utop。然而,虽然我似乎可以使用Opam成功地安装这两个工具,但当我尝试使用它们时,它们都不起作用。

我知道它们已安装,因为当我再次尝试安装它们时,会收到以下消息:

代码语言:javascript
复制
$ 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时,它不起作用。

代码语言:javascript
复制
$ utop
bash: utop: command not found

当我尝试打开核心时也是如此:

代码语言:javascript
复制
$ open Core.Std
Couldn't get a file descriptor referring to the console

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

EN

回答 4

Stack Overflow用户

发布于 2013-12-23 16:45:33

关于utop,似乎你的$PATH中没有。你做了吗:

代码语言:javascript
复制
$ eval `opam config env`

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

代码语言:javascript
复制
. ~/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

至于不能打开Core.Std,当然也不能在shell中打开它,这个命令必须在utop中执行。

票数 9
EN

Stack Overflow用户

发布于 2016-07-03 15:52:23

在大多数在线资源中,在ubuntu中安装OCaml utop的方法似乎误导了用户。问题是,当使用sudo apt-get命令安装opam时,不需要再次使用相同的命令安装OCaml,因为OCaml是随opam一起安装的。所以你唯一要做的就是正确地初始化opam的状态,它定义了你的主文件夹中的OPAM根目录。

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

代码语言:javascript
复制
sudo apt-get purge --auto-remove ocaml-source
sudo apt-get purge opam

然后安装opam。

代码语言:javascript
复制
sudo add-apt-repository ppa:avsm/ppa
sudo apt-get update
sudo apt-get install opam

初始化opam的状态

代码语言:javascript
复制
opam init

如果显示缺少依赖项的警告,请尝试此命令,

代码语言:javascript
复制
opam install depext
opam depext conf-m4.1

然后验证ocaml安装,

代码语言:javascript
复制
eval 'opam config env'
ocaml

然后安装UTop,

代码语言:javascript
复制
opam install utop
eval `opam config env`
utop

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

票数 4
EN

Stack Overflow用户

发布于 2013-12-24 09:26:10

所以,我确实尝试了eval 'opam config env‘,结果如下:

代码语言:javascript
复制
$ 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“命令。上面的道路对我来说是胡言乱语。有没有人能够看看它返回了什么,看看这是否表明问题可能是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20738880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档