2015-10-14 117 views
0

由於我在工作站上沒有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 

我在做什麼錯?

+0

你爲什麼不使用opam? –

+0

由於它在我的系統上不可用。 – marmistrz

+0

,我沒有root權限 – marmistrz

回答

0

的解決方案是使用OCAMLPATH

OCAMLPATH=~/ounit ocamlfind ocamlc -o test -package oUnit -I ~/ounit/oUnit -linkpkg -g foo.ml test.ml 
1

您可以在不安裝根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二進制在比官方二進制文件更廣泛的系統上)