Как установить конкретную версию компилятора ocaml с opam
Как я могу установить конкретную версию компилятора ocaml (и совместимых пакетов), используя opam (или другой менеджер пакетов)?
Я быстро просмотрел документацию по оператору, но не нашел нужной информации.
Мне нужен компилятор ocaml (предпочтительно компилятор нативного кода) для сборки unison, программного обеспечения для синхронизации файлов. Мне нужно собрать unison на двух машинах, использующих одну и ту же версию ocaml, или иначе unison выдает ошибку и прерывает свою работу (yiiii!).
Я попытался собрать ocaml версии 4.04.0 из tar-шара, а затем использовать его для сборки unison, но на одной из машин сборка unison не удалась с сообщением об ошибке,
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?
1 ответ
Для переключения на конкретную версию компилятора сделайте
opam switch <compiler-version>
Например,
opam switch 4.03.0
Чтобы начать с определенной версии, т. Е. При первой установке opam, просто выполните
opam init --compiler=<version>
Например,
opam init --compiler=4.03.0
Для просмотра списка доступных версий сделайте
opam switch
Чтобы увидеть еще больше, сделай
opam switch -a