2017-06-28 2 views
2

Dans mon fichier cabale j'ai l'accumulation dépend suivante:Comment est-ce que je fais correspondre le paquet de conteneurs dans la pile pour la version que je veux?

build-depends:  base >= 4.7 && < 5, 
         containers >= 0.5.10 && < 0.6 

Lorsque je tente de lancer stack build j'obtiens l'erreur suivante:

Error: While constructing the build plan, the following exceptions were encountered: 

In the dependencies for server-0.1.0.0: 
    containers-0.5.7.1 must match >=0.5.10 && <0.6 (latest applicable is 0.5.10.2) 

J'ai eu ce problème avec cabal je résolus par en utilisant des bacs à sable de cabales. Je ne sais pas comment résoudre ce problème avec pile en regardant la documentation --help, l'erreur, la documentation de la pile et la recherche. Comment puis-je dire à la pile que je veux la nouvelle version des conteneurs sinon via le fichier cabal?

J'ai également essayé d'exécuter stack install containers-0.5.7.1 qui n'a pas fait ce que je l'attendais. Je vois un conteneur dans ma liste d'installations. J'ai remarqué que la pile documentation indique que la pile est en sandbox par défaut, mais il a été très pénible de l'obtenir pour construire ce simple fichier source en raison de la dépendance des conteneurs.

je remarquai que cette commande signale l'ancienne version des conteneurs, pas la version que je veux:

$ stack list-dependencies 
array 0.5.1.1 
base 4.9.1.0 
containers 0.5.7.1 
deepseq 1.4.2.0 
ghc-prim 0.5.0.0 

Répondre

4

Essayez de mettre ce qui suit dans stack.yaml:

extra-deps: 
- containers-0.5.10.2 

Une autre façon de rendre le travail est changez vos contraintes de cabale. Faire quelque chose comme cela devrait le faire fonctionner:

build-depends:  base >= 4.7 && < 5, 
         containers >= 0.5.7 && < 0.6 

Notez que ce moment ne 0.5.7.1 est disponible en LTS dans Stackage.

+0

Merci! J'ai couru 'stack solver --update-config' et je l'ai fait et maintenant il construit sans erreurs. Merci encore! –

+0

En fait, je préfère 0.5.10.2 car il a de nouvelles fonctions que je trouve pratique donc je ne voulais pas réduire la version. –

1

En plus de @ grande réponse de Sibi, je compris que cette commande aurait automatiquement résolu mon problème de dépendance:

stack solver --update-config