65

~/.cabal/config在我在新机器上安装一堆软件包之前,我忘记启用构建库以进行分析,现在--reinstall world尝试修复这种情况已经让所有东西都坏了(自然)。

我认为我最好利用我的时间来清除所有东西。我该如何正确地做到这一点?

4

2 回答 2

63

Cabal 不跟踪它安装的内容,它只是使用 ghc 的库机制(或者如果您不使用 ghc,则使用其他编译器的机制),因此您可以使用它rm -r ~/.ghc来删除所有本地安装的库。

如果您安装了多个 ghc,并且您只想删除特定 ghc 的库,请删除与您要删除的任何 ghc 对应的子目录。
例如,我可以删除我为 ghc-7.6.0 安装的所有内容,rm -r ~/.ghc/x86_64-linux-7.6.0.20120810
如果你愿意,你也可以使用它来保存你的 ghci_history。

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

编辑:~/.cabal/world是用户指定的具有版本限制的已安装包的列表。所以在大多数情况下,它将包括例如mtl -any. 如果您已经安装了具有特定版本的软件包,例如通过发布cabal install mtl-2.1.1,它将记录该版本。您应该能够删除 world 文件并重新开始,或者如果您查看它并且依赖项是可以接受的,您可以尝试运行cabal install world. 或者你可以忽略它而不使用阴谋集团的世界支持(这就是我所做的)。

于 2012-08-21T04:23:25.677 回答
19

这个ghc-pkg-reset shell 脚本会清理 ~/.ghc/ 和 ~/.cabal/,更有选择性。(并且随附的 ghc-pkg-clean 脚本可以帮助从混乱的软件包安装中恢复,也许可以避免重置。)我发现这些很有用。

于 2012-08-29T14:24:19.753 回答