Ich mache ein paar Arbeiten mit Ocaml und Opam. Ich benötige ocaml der Version 3.08.3, also habe ich versucht, diese Version über opam zu installieren. opam switch install 3.08.3
Der obige Befehl würde es erfolgreich installieren, hoffte ich. Aber es konnte nicht. Opam-Switch konnte nicht installiert 3. * Versionen von Ocaml mit der folgenden Fehlermeldung. [ERROR] Could not resolve set of base packages
Ich suchte diese Nachricht überall, aber ich konnte keine Hinweise bekommen. Hat jemand einen Anhaltspunkt, um dieses Problem zu lösen? Vielen Dank.Opam switch install konnte die ältere Version von ocaml (3.08.3) nicht installieren
Antwort
compilers/3.08.3/3.08.3/3.08.3.comp
, die Datei der Basispakete für die Compiler-Version zu beschreiben, sagt:
packages: [
"base-unix"
"base-bigarray"
"base-threads"
"base-ocamlbuild"
]
So erfordert es base-unix
, base-bigarray
, base-threads
und base-ocamlbuild
. Allerdings sagt die Paketbeschreibung von base-ocamlbuild
, packages/base-ocamlbuild/base-ocamlbuild.base/opam
:
ocaml-version: [>= "3.10" & < "4.03"]
Er sagt, dass ocamlbuild
vor 3.10
nicht verfügbar. In der Tat wurde ocamlbuild
seit 3.10 eingeführt. Es ist wahrscheinlich, dass die Compilerbeschreibungsdatei 3.08.3.comp
einen Fehler aufweist. Es ist großartig, wenn Sie ein Fehlerticket um https://github.com/ocaml/opam-repository/issues für das Update auslösen würden.
Für dieses Problem zu umgehen, empfehle ich OCaml 3,08 von Hand zu installieren, nicht OPAM Befehl: ich fast keinen Nutzen sehen 3.08 verwenden OPAM mit dem ocamlbuild
nicht verfügbar ist, da die meisten der OPAM Pakete, die Existenz von ocamlbuild
nehmen. Sie können auch Ihre eigene Kopie von OPAM Repo mit einer festen 3.08.3.comp
Datei ohne "base-ocamlbuild"
erstellen. Weitere Informationen finden Sie im Dokument opam repo
.