2017-06-23 4 views
0

Je commence à utiliser la pile, et je ne suis pas tout à fait sûr de savoir comment extraire un paquet qui apparaît dans le hackage mais pas dans les builds sélectionnés. En particulier, je voudrais tirer thrift-0.10.0. Il semble que je ne puisse pas le spécifier dans mon fichier project.cabal, et la section extra-deps ne fonctionne pas car il n'y a pas de résolveur qui contient ce paquet.Installation du paquetage hackage avec pile (pas en LTS ou tous les soirs)

Quand je lance stack install thrift-0.10.0, je reçois l'erreur suivante:

While constructing the build plan, the following exceptions were encountered: 
In the dependencies for thrift-0.10.0: 
    vector-0.11.0.0 must match ==0.10.12.2 (latest applicable is 0.10.12.2) 

Je ne suis pas vraiment sûr (a) ce stack install fait, et (b) comment résoudre le plan de construction depuis le spécifie paquet Thrift une égalité (==) sur le paquet vector-0.10.12.2. Si j'essaie d'inclure le vector == 0.10.12.2 correspondant dans mon package.cabal, cela échoue également. Ai-je besoin de spécifier un résolveur antérieur?

Je me rends compte que j'ai beaucoup à apprendre sur cet outil de construction, mais dans ce cas, ma question principale, pour laquelle aucune documentation semble facilement disponible est:

how do I include a hackage package in my stack build?

Répondre

1

nor does the extra-deps section work since there is no resolver that contains this package.

extra-DEPS peuvent contenir tout paquet de piratage.

(a) what stack install does

Il juste une construction du paquet + copie de executables à .local/bin

Installer ne doit pas être utilisé pour les dépendances, elle devrait plutôt être utilisé pour vos projets locaux/applications de hackage (paquets avec des exécutables). Il est inutile d'installer les dépendances de votre projet, au contraire, ils doivent être spécifiés dans stack.yaml

(b) how to resolve the build plan since the thrift package specifies an equality (==) on the vector-0.10.12.2 package.

Il semble vraiment moche pour le paquet Thrift pour avoir une contrainte (==) comme ça. Pour contourner le problème, faites "allow-newer: true" dans votre pile.yaml (les contraintes sont ignorées). Ou, probablement mieux, ajouter `vecteur 0.10.12.2" à vos extra-DEPS

for which no documentation seems readily available is:

how do I include a hackage package in my stack build?

Voir cette section docs:.. https://docs.haskellstack.org/en/stable/GUIDE/#external-dependencies

+0

apprécierais peut pas croire que je manqué la section dépendances externes ... Doh! –