GHC Build-Fehler beim Versuch, Cabal Bibliothek zu bauen
Frage
Ich bin versucht zu bauen / installieren Cabal auf meinem System und ich laufe in die folgenden Abhängigkeitsfehler:
SDGL0990Z464C:Cabal-1.8.0.4 cflynn$ ghc --make Setup
SDGL0990Z464C:Cabal-1.8.0.4 cflynn$ ./Setup configure
Configuring Cabal-1.8.0.4...
Setup: At least the following dependencies are missing:
base >=4 && <3 && >=1 && <5, filepath >=1 && <1.2
Ich habe GHC 7.0.1 installiert ist, soweit ich weiß, GHC 6.6.1 und später kommen mit dem ‚filepath‘ Paket? Und ich bin unklar, genau das, was ‚Basis‘ bezieht sich auf?
Lösung
GHC Schiffe mit einem bestimmten Satz von Bibliotheken bereits installiert. Wenn Sie den Build-Befehl über Kabale laufen will „neu installieren“ einige älteren Versionen der Bibliotheken des Schiffs mit GHC. Das ist schlecht, aus offensichtlichen Gründen.
Wenn Sie das wirklich tun müssen, kann es zu verwenden cabal-dev
arbeiten statt Cabal
. By the way, Setup.hs
mit ruft die Version der Cabal
Bibliothek, die mit Ihrem Compiler ausgeliefert, wo als die cabal
Befehl Ausführen des cabal-install
Programm aufruft.
cabal-dev
ist ein Wrapper um cabal-install
(und Cabal
somit die Bibliothek), die baut bietet Sandbox. So dass es sichere Programme zu installieren, die verschiedenen Versionen der Bibliotheken benötigen, die mit GHC versenden. Die verbleibende Frage wäre, ob diese älteren Bibliotheken gegen die neuere GHC bauen würde. In vielen Fällen ist die Build fehl.
ich Ihnen sehr empfehlen verwenden cabal-dev
für den Tag-zu-Tag-Paket Gebäude statt cabal-install
. Die Vorteile der Sandbox sind vielfältig und überwiegen stark das Risiko von cabal-install
Ihrer Paketdatenbank korrumpieren, indem ein Paket irgendwo in der Mitte einer Abhängigkeitskette für etwas aktualisieren Sie bereits installiert haben.
Weitere Informationen über cabal-dev
verwenden, empfehle ich diese reddit Post .
base
ist ein Satz von Haskell-Module, die einen Großteil der Funktionalität, dass Schiffe mit jedem GHC installieren. Es ist eine Sammlung von nützlichen Bibliotheken, die die meisten Haskell Nutzer wollen und brauchen.