2010-12-10 26 views
0

Je tente de construire/installer Cabal sur mon système et je suis en cours d'exécution dans l'erreur de dépendance suivante:GHC construire erreur lors d'une tentative de construire la bibliothèque Cabal

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 

Je GHC 7.0.1 installé, pour autant que je sache GHC 6.6.1 et plus tard avec le paquet 'filepath'? Et je ne sais pas exactement à quoi se réfère la 'base'?

+0

GHC-7.0.1 a déjà Cabal-1.10.0.0, vous ne voulez pas le rétrograder car il est jumelé à cette version de GHC. Voulez-vous vraiment installer cabal? Je pense que vous devrez attendre jusqu'à ce qu'une nouvelle version soit publiée, il devrait y avoir une nouvelle version bientôt (c'est-à-dire ce mois-ci) car elle est nécessaire pour la version candidate de la prochaine version de la plate-forme. –

+0

@stephen, si cabal est livré avec GHC pouvez-vous me dire comment 'activer' le client en ligne de commande? J'essaye d'installer xmonad sur mon système. –

+3

Salut Casey. Le client de ligne de commande est "cabal-install". Bien que GHC soit livré avec une version jumelée des bibliothèques cabal, "cabal-install" est un programme plus grand qu'un simple exécutable au dessus des bibliothèques de cabal. Il ne sortira donc que quelques semaines après GHC. Si vous voulez principalement xmonad, vous devriez utiliser la plate-forme Haskell, vous devez donc revenir à GHC 6.12.4 (ou attendre la prochaine version de la plate-forme qui, je pense, est prévue pour janvier). –

Répondre

1

GHC est livré avec un certain nombre de bibliothèques déjà installées. Lorsque vous exécutez la commande de construction ci-dessus, cabal veut "réinstaller" certaines anciennes versions des bibliothèques livrées avec GHC. C'est mauvais pour des raisons évidentes.

Si vous avez vraiment besoin de faire cela, il peut fonctionner pour utiliser cabal-dev au lieu de Cabal. Par ailleurs, l'utilisation de Setup.hs appelle la version de la bibliothèque Cabal fournie avec votre compilateur, où l'exécution de la commande cabal appelle le programme cabal-install.

cabal-dev est une enveloppe autour de cabal-install (et donc Cabal la bibliothèque) qui fournit des builds en sandbox. Pour sécuriser l'installation de programmes nécessitant différentes versions des bibliothèques livrées avec GHC. La question restante serait de savoir si ces bibliothèques plus anciennes construiraient ou non avec le nouveau GHC. Dans de nombreux cas, la construction échouera.

Je vous recommande fortement d'utiliser cabal-dev pour votre bâtiment au jour le jour au lieu de cabal-install. Les avantages du sandboxing sont nombreux et l'emportent largement sur le risque de corruption de votre base de données de paquets en mettant à jour un paquet quelque part au milieu d'une chaîne de dépendances pour quelque chose que vous avez déjà installé. Pour plus d'informations sur l'utilisation cabal-dev, je recommande ce reddit post.

base est un ensemble de modules Haskell qui fournissent la plupart des fonctionnalités fournies avec chaque installation GHC. C'est une collection de bibliothèques utiles que la plupart des utilisateurs de Haskell voudront et dont ils auront besoin.