Ich bin ein Anfänger in Haskell so bin ich nur fragen, was einige gute Möglichkeiten, um zwischen verschiedenen verisons von ghc zu wechseln sind, so dass wir cabal install
when the dependency of some Hackage requires an older version of base noch, anstatt Baum in Abhängigkeit läuft erschöpfend wie folgt gesucht:Haskell: Was sind einige gute Möglichkeiten, zwischen Ghc (für eine andere Basis) zu wechseln?
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: bnfc-system-tests-0.1.0.0 (user goal)
next goal: base (dependency of bnfc-system-tests-0.1.0.0)
rejecting: base-4.8.0.0/installed-901... (conflict: bnfc-system-tests =>
base>=4.5 && <4.8)
rejecting: base-4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1, 4.6.0.0, 4.5.1.0,
4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 4.2.0.1, 4.2.0.0,
4.1.0.0, 4.0.0.0, 3.0.3.2, 3.0.3.1 (global constraint requires installed
instance)
Dependency tree exhaustively searched.
Ich benutze einen Mac und ich installierte meine Haskell-Plattform (mit ghc-7.10.1.1) mit brühen (brew install ghc & cabal-install
). Also ging ich eine ältere Version von Haskell-Plattform greifen here, fügte einen Alias für die ältere Version von ghc in meinem .zshenv
ghc-78 --version
The Glorious Glasgow Haskell Compilation System, version 7.8.4
und machte eine neue Konfigurationsdatei in ~/.cabal
mit
-- compiler: ghc-78
Aber nach dass, wenn ich
cabal --config-file="./config78" install --only-dependencies --enable-tests
im Sandbox-Verzeichnis lief, habe ich noch in das Abhängigkeitsproblem bekam darauf hinweist, dass ich noch ghc 7,10 wurde mit. (So danach änderte ich die Linie zurück zu Compiler: ghc und hinzugefügt ghc-Standort.
-- ghc-location: the/new/directory/ghc
programmLokationen und ich war immer noch die gleiche Sache immer)
Was habe ich falsch gemacht und Was sind einige gute Möglichkeiten, zwischen verschiedenen Versionen von GhC zu wechseln? (Zum Beispiel in Node.js kann ich n verwenden, eine Versionskontrolle Manager)
--update:
Selbst nachdem ich die Linie
unkommentiert habencompiler: ghc-78
cabal --config-file="./config78" install --only-dependencies --enable-tests
noch geben würde, mir der Abhängigkeitsfehler (auch wenn ich stattdessen --sandbox-config-file
verwendet habe). cabal sandbox hc-pkg list base
würde zeigen, basen 4.8.0.0, auch wenn ich Sandbox mit der Konfigurationsdatei init:
cabal --config-file="./config78" sandbox init
jedoch
cabal install -w ghc-7.8.4
solange ghc-7.8.4 arbeitet in Weg ist, wie suggested by Daniel in the comment .
GHC selbst bietet bereits versionierte Binärdateien; 'ghc-7.8.4' und' ghc-7.10.1' (oder ähnlich) sollten bereits auf Ihrem Weg sein. Außerdem können Sie eine Version in der 'cabal'-Befehlszeile ziemlich einfach mit' -w' angeben, wie in 'cabal install -w ghc-7.8.4' - keine Notwendigkeit, eine spezielle separate Konfigurationsdatei zu erstellen. –
@DanielWagner tolle Tipps! Vielen Dank! –