我正在尝试在VirtualBox上设置Ubuntu16.04.3中的OCaml。我对他们所有人都是新手,请原谅我的无知。我使用以下命令安装了opam
wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin
并添加了
. /home/<username>/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
根据opam
安装后的说明,将其添加到我的~/.profile
文件。我使用opam install tuareg
安装了tuareg
,使用sudo apt-get install emacs
安装了GNU emacs 24.5.1
。
当我试图通过在emacs中输入M-x run-ocaml
和return
来使用ocaml
REPL时,我得到了OCaml REPL to run: ocaml
;当我再次点击enter
时,我得到了
Searching for program: no such file or directory, ocaml
然后我尝试了M-x shell
,看看是否可以从shell运行ocaml
,我注意到每次想要从终端/shell运行ocaml
时都需要使用opam switch
;如果我直接输入ocaml
,我将得到
The program 'ocaml' is currently not installed. You can install it by typing: sudo apt-get install ocaml-interp
我不确定这是否与我遇到的问题有关。
作为第二次尝试,我返回到emacs并输入M-x run-ocaml
,点击return
,然后在OCaml REPL to run:
再次点击return
(这次没有ocaml
)。这打开了一个新的缓冲区:
但是,当我尝试在新的缓冲区中输入内容,比如1+1;;
,并点击shift-return
,我得到了Output file descriptor of OCaml is closed
,如上所示。
我一直在阅读不同的文档和线程来获取指导,但它们都不能完全描述我的情况。任何帮助都将不胜感激!
发布于 2017-12-18 22:58:31
也许你应该尝试像M-x run-ocaml
,return
这样的东西,然后输入像/usr/bin/opam config exec -- ocaml
(或者你的opam安装路径)这样的东西,而不是ocaml
发布于 2017-12-19 00:34:01
所以我通过遵循realworldocaml解决了这个问题。我意识到我在我的帖子中有几个问题,所以我使用这个答案来分享链接中建议的每个问题的解决方案。
@ghilesZ的答案完美地解决了我问题标题中的问题(谢谢!)我应该已经在M-x
命令(如上面的答案所示)或~/.emacs
配置文件(如链接所示)中添加了ocaml
的路径。完成以下步骤后,在终端中输入which ocaml
即可获取路径。
需要打字
eval `opam config env`
可以通过在~/.bashrc
文件中添加行来解决从终端运行ocaml
的问题。这是因为在当前shell中输入命令仅为当前shell设置内容。为了让将来的shell自动设置,需要将其添加到登录脚本中。
https://stackoverflow.com/questions/47870286
复制相似问题