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
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.