aki*_*330 9 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).
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试输入"utop"来启动utop时,它不起作用.
$ utop
bash: utop: command not found
Run Code Online (Sandbox Code Playgroud)
当我尝试打开核心时:
$ open Core.Std
Couldn't get a file descriptor referring to the console
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我是编程的新手,所以可能有一些关于安装的东西,我只是不理解.
关于utop
,似乎你没有$PATH
.你做了:
$ eval `opam config env`
Run Code Online (Sandbox Code Playgroud)
如果您希望在新shell中正确自动设置opam,则应将以下内容添加到.bashrc
:
. ~/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
Run Code Online (Sandbox Code Playgroud)
至于无法打开Core.Std
,你当然不能在你的shell中打开它,必须发出这个命令utop
.
大多数在线资源中在 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
Run Code Online (Sandbox Code Playgroud)
然后安装opam。
sudo add-apt-repository ppa:avsm/ppa
sudo apt-get update
sudo apt-get install opam
Run Code Online (Sandbox Code Playgroud)
初始化 opam 的状态
opam init
Run Code Online (Sandbox Code Playgroud)
如果它显示依赖项缺失警告,请尝试此命令,
opam install depext
opam depext conf-m4.1
Run Code Online (Sandbox Code Playgroud)
然后验证 ocaml 安装,
eval 'opam config env'
ocaml
Run Code Online (Sandbox Code Playgroud)
然后安装 UTop,
opam install utop
eval `opam config env`
utop
Run Code Online (Sandbox Code Playgroud)
有关详细信息和处理错误,请参阅此博客文章。
归档时间: |
|
查看次数: |
7480 次 |
最近记录: |