由于我在工作站上没有root访问权限,因此我在本地安装了oUnit到〜/ ounit。如果我运行
,我可以在解释器中加载模块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
我做错了什么?
答案 0 :(得分:1)
您可以非常轻松地安装没有root的OPAM。例如,我的Travis CI脚本将OPAM安装到非root容器系统上,如下所示:
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二进制文件可以在比官方二进制文件更广泛的系统上工作)
答案 1 :(得分:0)
解决方案是使用OCAMLPATH
OCAMLPATH=~/ounit ocamlfind ocamlc -o test -package oUnit -I ~/ounit/oUnit -linkpkg -g foo.ml test.ml