在本地目录中使用ocamlfind
问题描述:
由于我在工作站上没有root访问权限,因此我在本地安装了oUnit到〜/ ounit中。我可以加载模块中的解释,如果我跑在本地目录中使用ocamlfind
ocaml -I ~/ounit/oUnit
现在我想运行测试,所以我尝试编译:
ocamlfind ocamlc -o test -package oUnit -I ~/ounit/oUnit -linkpkg -g foo.ml test.ml
不幸的是,ocamlfind不检测oUnit包
ocamlfind: Package `oUnit' not found
我在做什么错?
答
的解决方案是使用OCAMLPATH
OCAMLPATH=~/ounit ocamlfind ocamlc -o test -package oUnit -I ~/ounit/oUnit -linkpkg -g foo.ml test.ml
答
您可以在不安装根OPAM很容易。例如,我的特拉维斯CI脚本安装OPAM到他们的非根容器系统是这样的:
wget https://downloads.sourceforge.net/project/zero-install/0install/2.8/0install-linux-x86_64-2.8.tar.bz2
tar xjf 0install-linux-x86_64-2.8.tar.bz2
cd 0install-linux-x86_64-2.8
./install.sh home
export PATH=$HOME/bin:$PATH
0install add opam http://tools.ocaml.org/opam.xml
(通过0install安装的好处是,你将自动获得更新OPAM,并OPAM工作0install二进制在比官方二进制文件更广泛的系统上)
你为什么不使用opam? –
由于它在我的系统上不可用。 – marmistrz
,我没有root权限 – marmistrz