2016-04-01 2 views
1

Je travaille avec ocaml et opam. J'ai besoin de ocaml de la version 3.08.3, j'ai donc essayé d'installer cette version via opam. opam switch install 3.08.3 La commande ci-dessus l'installerait avec succès, j'espérais. Mais ça ne pouvait pas. opam-switch n'a pas pu installer les versions 3. * d'ocaml avec le message d'erreur suivant. [ERROR] Could not resolve set of base packages J'ai cherché ce message partout, mais je n'ai pas pu trouver d'indices. Est-ce que quelqu'un a un indice pour résoudre ce problème? Merci.L'installation du switch Opam n'a pas pu installer l'ancienne version d'ocaml (3.08.3)

Répondre

2

compilers/3.08.3/3.08.3/3.08.3.comp, le fichier pour décrire les packages de base pour cette version du compilateur dit:

packages: [ 
    "base-unix" 
    "base-bigarray" 
    "base-threads" 
    "base-ocamlbuild" 
] 

il EXIGE base-unix, base-bigarray, base-threads et base-ocamlbuild. Cependant, la description du paquet de base-ocamlbuild, packages/base-ocamlbuild/base-ocamlbuild.base/opam dit:

ocaml-version: [>= "3.10" & < "4.03"] 

Il dit que ocamlbuild n'est pas disponible avant 3.10. En effet, ocamlbuild a été introduit depuis 3.10. Il est probable que le fichier de description du compilateur 3.08.3.comp a un bug. C'est génial si vous soulevez un ticket de bug au https://github.com/ocaml/opam-repository/issues pour le correctif.

Pour contourner ce problème, je vous recommande d'installer 3,08 OCaml à la main, ne pas utiliser la commande OPAM: Je vois presque aucun avantage à utiliser OPAM avec 3,08 où ocamlbuild n'est pas disponible, puisque la plupart des paquets OPAM supposent l'existence de ocamlbuild.

Vous pouvez également créer votre propre copie d'OPAM repo avec un fichier 3.08.3.comp fixe sans "base-ocamlbuild". Voir le document de opam repo pour plus de détails.