Как я могу установить конкретную версию компилятора ocaml (и совместимые пакеты) с помощью opam (или другого менеджера пакетов)?
Я быстро просмотрел документацию по оператору связи, но не нашел соответствующей информации.
Мне нужен компилятор ocaml (желательно компилятор нативного кода) для создания unison, программного обеспечения для синхронизации файлов. Мне нужно создать unison на двух машинах, использующих одну и ту же версию ocaml, иначе unison выдаст ошибку и прервет свою работу (yiiii!).
Я попытался собрать ocaml версии 4.04.0 из tar-шарика, а затем использовать его для построения унисона, но на одной из машин сборка унисона завершилась неудачно с сообщением об ошибке,
make[1]: Entering directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
ocamlc -o mkProjectInfo unix.cma str.cma mkProjectInfo.ml
File "mkProjectInfo.ml", line 1:
Error: Error while linking /home/norio/Downloads/unison/ocaml_for_unison/lib/ocaml/unix.cma(Unix):
The external function `unix_has_symlink' is not available
if [ -f `which etags` ]; then \
etags *.mli */*.mli *.ml */*.ml */*.m *.c */*.c *.txt \
; fi
make[1]: Leaving directory '/home/norio/Downloads/unison/unison-2.48.4_expand/src'
Я не хочу отправляться на поиски unix_has_symlink
функции и посвящать себя исследованию болота зависимостей библиотек, где многие разработчики пали до того, как пришла цивилизация и были изобретены менеджеры пакетов.
Есть что-нибудь вроде opam install ocamlc-4.04
и opam install all-packages
?
Дополнение
Сообщение об ошибке unix_has_symlink
было обнаружено на машине под управлением Linux Mint 18 Cinnamon 64 bit. Является ли эта функция частью какой-либо библиотеки unix / linux, а не пакета ocaml?
opam switch create 4.06.0
отлично поработал для меня 04.02.2019