OCaml安装,没有找到二进制文件

时间:2010-11-12 22:12:05

标签: installation ocaml

我正在尝试在远程unix服务器上安装和运行objective-caml。

我已经成功构建并安装了ocaml包中包含的所有文件。但是,在尝试使用它时,例如:

[~]# ocamllex

给出:

-bash: /home1/PATHTOMYHOME/local/bin/ocamllex: /usr/local/bin/ocamlrun: bad interpreter: No such file or directory

有没有办法让它看到ocamlrun的其他地方?正确的目录位于$ PATH变量中(ocamlrun正常工作)。

2 个答案:

答案 0 :(得分:2)

在unix系统上,Ocaml字节码可执行文件以shebang行开头,该行提供字节码解释器(ocamlrun)的路径。您的可执行文件似乎以#!/usr/local/bin/ocamlrun开头。将其更改为/home1/PATHTOMYHOME/local/bin/ocamlrun

如果您想在ocamlrun中查找$PATH,请将shebang行更改为#!/usr/bin/env ocamlrun

这是一种更改当前目录中字节码可执行文件路径的方法,其他文件保持不变。检查更换工作后,删除*.orig文件。

perl -i.orig -pe 's~^#!.*/ocamlrun.*~#!/usr/bin/env ocamlrun~ if $.==1; close ARGV if eof' *

我建议您使用./configure -prefix /home1/PATHTOMYHOME/local编译OCaml。这样,所有程序都会自动查找正确的目录。

答案 1 :(得分:1)

您可以将字节码文件的名称传递给ocamlrun

/correct/path/to/ocamlrun /home1/PATHTOMYHOME/local/bin/ocamllex

或者,它可能只是编辑字节码文件的第一行:有一个#!那里有一条硬编码的路。该文件的其余部分是字节码,但如果您的编辑器没有弄乱它,那么有可能......

作为第三种解决方案,请使用本机编译版本ocamllex.opt:它不依赖于ocamlrun