63 votes

Mes paquets de cabale sont FUBAR; Comment puis-je les purger et recommencer?

J'ai oublié d'activer les bibliothèques de construction pour le profilage dans mon ~/.cabal/config avant d'installer un paquet de paquets sur une nouvelle machine et maintenant un --reinstall world pour essayer de réparer la situation a tout cassé (naturellement) .

Je pense que c'est une meilleure utilisation de mon temps que de tout purger. Comment puis-je le faire correctement?

60voto

John L Points 20989

La cabale ne pas garder une trace de ce qu'il est installé, il utilise juste ghc bibliothèque du mécanisme (ou celle de certains autres compilateur si vous n'êtes pas à l'aide de ghc), de sorte que vous pouvez utiliser rm -r ~/.ghc supprimer tous installés localement des bibliothèques.

Si vous avez plusieurs ghc est installé, et que vous souhaitez seulement à supprimer les libs pour un ghc, supprimer le sous-répertoire correspondant à celle de ghc vous souhaitez supprimer.
Par exemple, je pouvais enlever tout ce que j'ai installé pour le ghc-7.6.0 avec rm -r ~/.ghc/x86_64-linux-7.6.0.20120810
Vous pouvez également utiliser cette fonction pour préserver votre ghci_history si vous le souhaitez.

ll ~/.ghc/
total 24
-rw-r--r-- 1 johnl johnl 2300 Aug 21 11:47 ghci_history
drwxr-xr-x 3 johnl johnl 4096 Jun 17 19:09 x86_64-linux-6.12.3
drwxr-xr-x 3 johnl johnl 4096 May 17 08:17 x86_64-linux-7.2.1
drwxr-xr-x 3 johnl johnl 4096 May 16 17:34 x86_64-linux-7.4.1
drwxr-xr-x 3 johnl johnl 4096 Jun 15 08:21 x86_64-linux-7.4.2
drwxrwxr-x 3 johnl johnl 4096 Aug 15 12:37 x86_64-linux-7.6.0.20120810

Edit: ~/.cabal/world est une liste des paquets installés avec la version de contraintes tel que spécifié par l'utilisateur. Donc, dans la plupart des cas, il serait incluent, par exemple, mtl -any. Si vous avez installé les paquets avec des versions spécifiques, par exemple en publiant cabal install mtl-2.1.1,, il va enregistrer cette version. Vous devriez être en mesure de supprimer le fichier de l'univers et de recommencer, ou si vous regarder par-dessus et les dépendances sont acceptables, vous pouvez essayer de courir juste cabal install world. Ou vous pouvez l'ignorer et de ne pas utiliser la cabale mondiale de soutien (c'est ce que je fais).

19voto

Simon Michael Points 1577

Ce script shell ghc-pkg-reset nettoie à la fois ~ / .ghc / et ~ / .cabal /, un peu plus sélectivement. (Et le script ghc-pkg-clean qui l'accompagne peut aider à récupérer d'une installation de paquet confuse, en évitant peut-être une réinitialisation.) Je trouve cela utile.

1voto

amindfv Points 4668

Cette ressource m'a été si utile pour nettoyer l'environnement de mon paquet: http://www.vex.net/~trebla/haskell/sicp.xhtml#storage

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X