2016-06-21 2 views
0

je tentais d'utiliser cabale installer mtl alors qu'il m'a dit m'a manqué transformers ==0.4.* && ==0.5.2.0.cabale n'a pas réussi à installer la dépendance manquante mtl des transformateurs

$ cabal install mtl 
Resolving dependencies... 
Configuring mtl-2.2.1... 
cabal.exe: At least the following dependencies are missing: 
transformers ==0.4.* && ==0.5.2.0 
cabal.exe: Error: some packages failed to install: 
mtl-2.2.1 failed during the configure step. The exception was: 
ExitFailure 1 

Je suis resté ici pendant près d'une semaine. J'ai installé des transformateurs dans les versions 0.4.3.0 et 0.5.2.0. Ma cabale est en version 1.10.2.0 et mon ghc est en 7.6.3. Je suis nouveau à ghc donc je ne peux pas comprendre quel est le problème. Je ne comprends pas ce que le transformers ==0.4.* signifie. Aucune suggestion? Merci beaucoup!

+0

Le fait que deux versions différentes de transformateurs soient nécessaires est inquiétant. Quelque chose ne va pas avec votre installation. Utilisez-vous un bac à sable? –

Répondre

2

La ligne

transformers ==0.4.* && ==0.5.2.0 

est une contrainte de dépendance de la version de la bibliothèque de transformateurs. Ici, il déclare qu'il exige que la version transformateurs est en même temps 0,4. * Et 0.5.2.0. Bien qu'il puisse y avoir différentes versions installées, lors de la compilation une seule version peut être utilisée, par conséquent, cette contrainte ne peut jamais être satisfait.

Pour certaines raisons, cabale semble se confondre avec les deux revisions du paquet mtl. La deuxième révision ajoute le support pour les transformateurs-5. Voir aussi issue 30 de mtl, où il est noté que les métadonnées de hackage sont la deuxième révision, mais l'archive source qui est finalement téléchargée est la révision originale.

Jusqu'à ce qu'une nouvelle la version de mtl est libéré, vous devez installer explicitement transformateurs 0.4.3.0 (et seulement cette version) puis installez mtl.

cabal install transformers-0.4.3.0 

Si les dépendances sont satisfaites lors de l'installation mtl, transformateurs 0.4.3.0 seront soumis à la vérification de la dépendance. Il semble que cabal ajoute automatiquement la dernière version en tant que dépendance (par exemple == transformers-0.5.2.0) lorsque cette version est installée. Par conséquent, seules les versions 0.4. * Doivent être installées.

Si vous avez déjà installé la dernière version de transformateurs, vous pouvez uninstall it:

ghc-pkg unregister --force transformers-0.5.2.0 
rm -r .cabal/packages/hackage.haskell.org/transformers/0.5.2.0 

(Faites cela pour chaque version 5.x qui est installé, voir cabal info transformers pour une liste de la version installée.)

+0

Cela m'a également indirectement empêché d'installer xmobar via cabal. – user2664470