为什么Ocaml版本位于文件(4.04.0)上与终端所说的(4.03.0)不同?

时间:2016-12-01 07:10:34

标签: bash macos ocaml macos-sierra

我一直在尝试运行一个使用图形的程序(我已经posted about here)了。 This post和其他帖子让我得出结论,我需要创建一个〜/ .bashrc并放入其中:

alias ocaml="/usr/local/Cellar/ocaml/4.03.0/bin/ocaml”

但是,/usr/local/Cellar/ocaml/4.03.0/bin/ocaml不是我系统中的有效文件。 B / c当我在终端上运行时:

$ cd /usr/local/Cellar/ocaml/4.03.0/bin
-bash: cd: /usr/local/Cellar/ocaml/4.03.0/bin: No such file or directory

但是将版本更改为4.04.0有效:

$ cd /usr/local/Cellar/ocaml/4.04.0/bin

但是当我向终端询问我正在运行的是什么时:

$ which ocaml
/Users/Username/.opam/4.03.0/bin/ocaml

它说我正在运行4.03.0

当我尝试使用图形运行ocaml程序时出现错误消息:

Error: Cannot find file /Users/Username/.opam/4.03.0/lib/ocaml/graphics.cma

所以我的终端似乎正在运行4.03.0,但我OCaml 4.03.0中没有/usr/local/Cellar/ocaml/4.03.0/bin而是4.04.0 ??

对我来说这似乎很奇怪。

如果有人能帮助我,我将不胜感激!我花了几个小时试图弄清楚如何在我的计算机上运行图形,我不知道为什么以前的StackOverflow帖子中发布的解决方案没有帮助:(

2 个答案:

答案 0 :(得分:0)

我发现很奇怪。 alias命令仅适用于您的终端,而不适用于整个系统。

你的PATH变量中可能有“/Users/Username/.opam/4.03.0/bin/ocaml”。

我建议:

export PATH="/usr/local/Cellar/ocaml/4.04.0/bin:$PATH"

然后:

which ocaml

并且路径应该是4.04版本

答案 1 :(得分:0)

您的计算机上似乎有多个OCaml安装。其中一些是通过opam安装的,另一些是手动安装或通过系统包管理安装的。我建议只是忽略后者并专注于opam。

要使用opam,您需要激活您的开关。这可以手动完成,

  eval `opam config env`

(注意使用反引号)

您也可以将其放入个人资料中,以便每次登录时都会激活opam。您甚至可以让opam为您执行此操作:

  opam config setup --user 

最后,如果您想在正常的终端环境中运行程序,并且不想依赖某些预设置步骤(即在客户端的计算机上),那么您可以使用{ {1}}:

opam config exec