haskell - 我的 cabal 包是 FUBAR;我怎样才能清除它们并重新开始?

标签 haskell cabal

在新机器上安装一堆软件包之前,我忘记在我的 ~/.cabal/config 中启用构建库以进行分析,现在是 --reinstall world试图解决这个问题却让一切都崩溃了(自然地)。

我认为清理所有内容是更好地利用我的时间。我该如何正确地做到这一点?

最佳答案

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

如果您安装了多个 ghc,并且只想删除特定 ghc 的库,请删除与您要删除的 ghc 对应的子目录。
例如,我可以使用 rm -r ~/.ghc/x86_64-linux-7.6.0.20120810 删除为 ghc-7.6.0 安装的所有内容。
如果您愿意,您还可以使用它来保留您的 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 ,它将记录该版本。您应该能够删除世界文件并重新开始,或者如果您查看它并且依赖项是可以接受的,您可以尝试只运行 cabal install world 。或者你可以忽略它并且不使用 Cabal 的世界支持(这就是我所做的)。

关于haskell - 我的 cabal 包是 FUBAR;我怎样才能清除它们并重新开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048352/

相关文章:

haskell - 为什么 Stack 无法识别刚刚安装的依赖项?

haskell - 无法编译haskell项目: linking step fails

haskell - 在函数中使用时 Haskell 中随机的返回类型

ubuntu - 在我的 Ubuntu 磁盘上安装了两个不同的 Haskell 平台

design-patterns - Haskell:设计模式:类或传递函数

haskell - 覆盖 LTS 的 cabal 版本

iphone - 有类似 Haskell/ML 的 C 编译器吗?

Haskell RSA 示例

linux - cabal 安装失败,因为缺少 C 库

Haskell cabal 安装错误