如果我想安装新版本的GHC,我该怎么办?

Ala*_*aya 5 haskell ghc

目前,我在我的ubuntu 14.04系统上使用GHC 7.10.1,刚才我从邮件列表中注意到已发布包含大量bug修复的新版本.所以我正在考虑更新我的GHC.

我知道如何安装GHC,但是,我对如何处理已安装的软件包知之甚少cabal.似乎这些软件包已安装到~/.cabal,例如,libs已安装到~/.cabal/lib/x86_64-linux-ghc-7.10.1并注册~/.ghc/x86_64-linux-7.10.1.

路径名(... x86_64-linux-7.10.1 ...)似乎暗示它们只能被使用GHC 7.10.1,所以如果我想使用新版本GHC并ghc 7.10.1从我的系统中删除旧版本,我应该清理它们并重新安装这些包?

例如,我应该rm -rf ~/.cabal && rm -rf ~/.ghc重新安装cabal和GHC吗?或者我应该把那些包留在那里?如果是这样,那些已安装的软件包是否会被新的GHC重用?

Sha*_*eep 2

是的,更新编译器时需要重新安装软件包。

但是,如果您删除,~/.ghc那么从 GHC 的角度来看,就会删除这些软件包。您还可以删除并重新安装所有内容,但(包括)~/.cabal中的二进制文件通常仍然可以工作,因此通常更容易保留这些文件并节省一些时间(看看那里有什么)。有些可能存在问题 - 我认为某些二进制文件可能在内部硬编码了 GHC 路径,因此会损坏,但您随时可以重新安装它们。~/.cabal/bincabal

~/.cabal/packages包含缓存的下载内容,因此是否删除取决于您。下次运行阴谋时,数据将再次被拉下来。如果有疑问,请将其删除。

您应该删除~/.cabal/lib其中包含已编译的软件包,并且不会与其他 GHC 兼容。同样对于~/.cabal/share.

除非您手动编辑了~/.cabal/config文件并希望保留更改,否则您也可以将其删除,然后将创建一个新文件。