2016-11-30 111 views
4

如何使用opam(或其他軟件包管理器)安裝特定版本的ocaml編譯器(和兼容軟件包)?如何使用opam安裝特定版本的ocaml編譯器

我快速瀏覽了opam文檔,但沒有找到相關信息。

我需要ocaml編譯器(最好是本機代碼編譯器)來構建一致性文件同步軟件。我需要使用相同版本的ocaml在兩臺機器上建立一致性,否則一致發出錯誤並放棄其職責(yiiii!)。

我從焦油球試圖建設ocaml的版本4.04.0,然後用它建立統一,但在機器的一個統一的構建與錯誤消息失敗,

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.04opam install all-packages


補遺

unix_has_symlink左右正在運行Linux Mint的18肉桂64位機器上觀察到的錯誤消息。這個函數是一些unix/linux庫的一部分,而不是ocaml包嗎?

+0

你介意我問有關你得到這個錯誤的機器上的操作系統的詳細信息?我認爲'unix_has_symlink'是一個非常標準的Unix事物。 –

+0

@MikePierce感謝您的評論。我在原帖中添加了信息。 – norio

+0

這是一個糟糕的解決方案,但它看起來像調用'unix_has_symlink'的otherlib是新的並且不在舊版本的OCaml中(不是OCaml 4.01.0)。所以如果這個問題沒有得到解決,你可以安裝一箇舊版本。 :/ –

回答

8

要切換到編譯器的特定版本不

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 
相關問題