2015-10-14 4 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 package

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 без корня довольно легко. Например, мои скрипты Travis 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 автоматически, и 0install двоичных файлы opam работы в более широком диапазоне систем, чем официальные двоичные файлы)

Смежные вопросы