Haskell 如果我想安装新版本的GHC,我需要做什么?
目前,我正在我的ubuntu 14.04系统上使用GHC 7.10.1,刚才我从邮件列表中注意到,一个包含大量错误修复的新版本已经发布。因此,我正在考虑更新我的GHC 我知道如何安装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
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。。。