2016-02-03 1 views
1

j'installer le plus récent paquet de base, mais la cabale ne me laisse pas le faireComment trouver installé les dépendances inverses d'un paquet dans la cabale

cabal install base --reinstall 
Resolving dependencies... 
cabal: Could not resolve dependencies: 
next goal: base (user goal) 
rejecting: base-4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1, 
4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 
4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0 (only already installed instances can be 
used) 
rejecting: base-3.0.3.2 (conflict: base => base>=4.0 && <4.3) 
rejecting: base-3.0.3.1 (conflict: base => base>=4.0 && <4.2) 
Dependency tree exhaustively searched. 

Donc, je pense que quand je Désouscrivez les dépendances qui détiennent cette package à l'ancienne version Je peux le faire

ghc-pkg unregister some_annoying_package 

Mais comment puis-je trouver ces paquets. J'ai trouvé seulement

cabal-db revdeps base 

qui me donne toutes les dépendances de hackage pas seulement installé.

+4

Vous ne pouvez pas réinstaller 'base' avec cabal. Si vous avez besoin de mettre à jour 'base', vous devez mettre à jour votre version du compilateur. En général, si vous faites 'ghc-pkg unregister ' il vous dira d'abord ce qui sera cassé par ceci (et par conséquent, les dépendances dont vous avez besoin de désenregistrer pour annuler l'enregistrement de '') mais cela ne s'applique pas dans ce cas . – user2407038

+0

Merci @ user2407038 vous avez sauvé ma journée! J'ai réinstallé ghc et le paquet de base est mis à jour! – user1698641

+1

De même, les dépendances inversées ne vous empêchent pas d'installer une nouvelle version d'un package. Plusieurs installations du même package (avec des numéros de version différents) peuvent cohabiter dans la base de données de packages de GHC. (Les GHC modernes peuvent même prendre en charge plusieurs installations de la même version de la même bibliothèque avec différents arbres de dépendances, bien que cabal n'ait pas encore pris officiellement en charge cette fonctionnalité.) –

Répondre

1

La mise à jour du compilateur a mis à jour le paquet de base. Comme expliqué par l'utilisateur2407038:

Vous ne pouvez pas réinstaller la base avec cabale. Si vous avez besoin de mettre à jour la base, vous devez mettre à jour votre version du compilateur. En général, si vous faites ghc-pkg unregister, il vous dira d'abord ce qui sera cassé par ceci (et par conséquent, les dépendances dont vous avez besoin pour annuler l'inscription) mais cela ne s'applique pas dans ce cas.