2013-05-20 40 views
1

我正在嘗試安裝Opam的uri軟件包,但我一直在運行這個錯誤。'opam install uri'failed

==== ERROR [while installing uri.1.3.8] ==== 
# opam-version 0.9.6 (latest-103-g955b7ca) 
# os    linux 
# command   ocaml setup.ml -configure --prefix /root/.opam/system 
# path   /root/.opam/system/build/uri.1.3.8 
# exit-code  1 
# env-file  /root/.opam/system/build/uri.1.3.8/uri-ffb3fd.env 
# stdout-file  /root/.opam/system/build/uri.1.3.8/uri-ffb3fd.out 
# stderr-file  /root/.opam/system/build/uri.1.3.8/uri-ffb3fd.err 
### stderr ### 
ocamlfind: Package `compiler-libs.toplevel' not found 
W: Field 'pkg_compiler_libs_toplevel' is not set: Command ''/root/.opam/system/bin/ocamlfind' query -format %d compiler-libs.toplevel > '/tmp/oasis-85d951.txt'' terminated with error code 2 
E: Cannot find findlib package compiler-libs.toplevel 
E: Failure("1 configuration error") 

'opam install uri' failed. 

我很新Ocaml和Opam回購。我真的不知道發生了什麼問題。我運行Ubuntu 12.04並安裝了Ocaml 3.12.1。

感謝您提供的任何見解!

回答

2

我剛剛在3.12.1下安裝了uri,沒有任何問題。

3.12.1是在你的系統下的ocaml編譯器,對吧?你可能通過aptitude安裝ocaml?在這種情況下,您還需要安裝ocaml-compiler-libs。 OCaml還有許多其他可選的軟件包,這些軟件包通常都是需要的,並且可能會在將來遇到 - 另一個是我看到錯過和需要的。最大的列表是here

我也會升級OPAM,因爲兩天前uri軟件包發生了一些變化。 opam update; opam upgrade。這將需要一些重新編譯,並確保你切換到正確的編譯器。

2

包「compiler-libs.toplevel」丟失。如果我沒有記錯,它與ocaml一起發貨,並且只有從4.0版開始纔可用。

安裝舊版本的uri或將您的編譯器更新到4.0。詳情看here

+0

如果確實如此 - 我不懷疑 - 那麼這是opam-repository中URI包配置的問題。他們應該在其配置中指定最低版本的OCaml。 – nlucaroni

+0

OPAM軟件包創建者不是全能的,他們的測試資源是有限的。如果您發現環境中的opam文件配置有誤,請通過https://github.com/OCamlPro/opam/issues報告問題。 – camlspotter