Question

Cabal a des problèmes de dépendance en permanence . Il est vraiment fatiguant. Jusqu'à présent, j'ai essayé de faire beaucoup de choses à travailler, voici mon essayant d'installer composant logiciel enfichable:

$ sudo cabal install snap-server
Resolving dependencies...
cabal: cannot configure ListLike-1.1.0. It requires mtl >=1.1.0 && 1.2
For the dependency on mtl >=1.1.0 && 1.2 there are these packages:
mtl-1.1.0.0, mtl-1.1.0.1, mtl-1.1.0.2 and mtl-1.1.1.0. However none of them
are available.
mtl-1.1.0.0 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.0.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
mtl-1.1.0.1 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.0.1 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
mtl-1.1.0.2 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.0.2 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
mtl-1.1.1.0 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.1.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*

J'ai des problèmes similaires installe Happstack, etc. Quelle est la procédure pour faire cabale ... le travail? Je l'ai déjà essayé:

export PATH=/home/user/.cabal/bin:$PATH
Était-ce utile?

La solution

Le problème est que snap-server-0.2.15 a une dépendance non bornée sur monades-fd. La version la plus récente, monades-fd-0.1.0.3, exige mtl-2. * Malheureusement, ce conflit avec la dépendance ListLike (via iteratee), ce qui nécessite mtl <2.0. Ces deux contraintes ne peuvent pas être remplies simultanément, donc cabale abandonne.

Essayez de lancer cabal install snap-server --constrain="monads-fd=0.1.0.2". Cela forcera une version antérieure de monades-fd qui ne nécessite pas mtl, et je pense que tout fonctionne correctement.

Si vous rencontrez des problèmes avec beaucoup de paquets, il est probablement dû à la nouvelle mtl qui a été récemment téléchargé. Vous pouvez essayer d'ajouter --constrain="mtl<2", ce qui pourrait aider.

Moral à mainteneurs. Suivre la PVP Haskell et toujours utiliser des bornes de dépendance supérieure

N.B.. Même si je télécharger une nouvelle ListLike qui fonctionne avec mtl-2 (que je vais le faire très bientôt), qui ne résoudra pas votre problème, car le nouveau ListLike ne sera pas sélectionné en raison de la limite supérieure iteratee.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top