J’ai oublié d’activer la construction de bibliothèques 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 corriger la situation a tout cassé (naturellement).
Je pense que c’est une meilleure utilisation de mon temps pour tout purger. Comment puis-je le faire correctement?
Cabal ne garde pas trace de ce qui est installé, il utilise simplement le mécanisme de bibliothèque de ghc (ou celui d’un autre compilateur si vous n’utilisez pas ghc), vous pouvez donc utiliser rm -r ~/.ghc
pour supprimer tous les rm -r ~/.ghc
installés localement. bibliothèques.
Si plusieurs ghc sont installés et que vous souhaitez uniquement supprimer les bibliothèques pour un ghc spécifique, supprimez le sous-répertoire correspondant à la ghc à supprimer.
Par exemple, je pourrais supprimer tout ce que j’ai installé pour ghc-7.6.0 avec rm -r ~/.ghc/x86_64-linux-7.6.0.20120810
Vous pouvez également l’utiliser 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 de packages installés avec des contraintes de version spécifiées par l’utilisateur. Donc, dans la plupart des cas, cela inclurait par exemple mtl -any
. Si vous avez installé des paquets avec des versions spécifiques, par exemple en émettant l’ cabal install mtl-2.1.1
, il enregistrera cette version. Vous devriez être capable de supprimer le fichier world et de recommencer, ou si vous l’examinez et que les dépendances sont acceptables, vous pourriez essayer d’exécuter simplement cabal install world
. Ou vous pourriez l’ignorer et ne pas utiliser le support mondial de la cabale (c’est ce que je fais).
Ce script shell ghc-pkg-reset nettoie un peu plus sélectivement ~ / .ghc / et ~ / .cabal /. (Et le script ghc-pkg-clean qui l’accompagne peut vous aider à récupérer d’une installation de paquetage confus, en évitant peut-être une réinitialisation.) Je les trouve utiles.