Haskell 如果我想安装新版本的GHC,我需要做什么?

Haskell 如果我想安装新版本的GHC,我需要做什么?,haskell,ghc,Haskell,Ghc,目前,我正在我的ubuntu 14.04系统上使用GHC 7.10.1,刚才我从邮件列表中注意到,一个包含大量错误修复的新版本已经发布。因此,我正在考虑更新我的GHC 我知道如何安装GHC,但是,我对如何处理通过cabal安装的软件包知之甚少。这些软件包似乎安装在~/.cabal中,例如,libs安装在~/.cabal/lib/x86\u 64-linux-ghc-7.10.1中,并在~/.ghc/x86\u 64-linux-7.10.1中注册 路径名(…x86_64-linux-7.10.1

目前,我正在我的ubuntu 14.04系统上使用GHC 7.10.1,刚才我从邮件列表中注意到,一个包含大量错误修复的新版本已经发布。因此,我正在考虑更新我的GHC

我知道如何安装GHC,但是,我对如何处理通过
cabal
安装的软件包知之甚少。这些软件包似乎安装在
~/.cabal
中,例如,libs安装在
~/.cabal/lib/x86\u 64-linux-ghc-7.10.1
中,并在
~/.ghc/x86\u 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是否会重用这些已安装的软件包?

是的,您需要在更新编译器时重新安装这些软件包

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

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

您应该删除
~/.cabal/lib
,它包含已编译的包,并且与其他GHC不兼容。同样适用于
~/.cabal/share

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

您不需要删除任何内容。如果您在安装GHC 7.10.1的同一位置安装GHC 7.10.2,则所有符号链接
GHC
ghci
GHC pkg
等都将被覆盖,指向7.10.2,但您仍然可以运行版本化程序
GHC-7.10.1
ghci-7.10.1
GHC-pkg-7.10.1
。,或者告诉
cabal
使用带有
-w
标志的特定编译器进行构建。所有库和库注册信息(无论是随GHC提供的、安装在用户包数据库中还是沙箱中)都(默认情况下)存储在GHC版本特定的子目录下,因此不同版本的GHC不会相互干扰


如果磁盘空间不够,我建议不要删除GHC 7.10.1。在昨天发布了所有7.10.2之后,如果您在7.10.2中遇到了一个奇怪的问题,那么可能需要检查7.10.1是否也受到了影响。

您是手动安装GHC还是使用了软件包?不管怎样,考虑到这一点并提供了新的库版本(二进制和base),您可能最好删除手动安装的
~/.cabal
~/.ghc
@Zeta I。。。