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

时间:2015-07-30 12:21:18

标签: haskell ghc

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

我知道如何安装GHC,但是,我对如何处理我已经通过SELECT CONVERT(smalldatetime,<columnName>); 安装的软件包知之甚少。似乎这些软件包已安装到cabal中,例如,库已安装到~/.cabal并在~/.cabal/lib/x86_64-linux-ghc-7.10.1中注册。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

~/.cabal/packages包含缓存下载,因此您是否删除了它。下次运行时,数据将再次下拉。如果有疑问,只需删除它。

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

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

答案 1 :(得分:2)

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

如果您的磁盘空间不足,我建议不要删除GHC 7.10.1。毕竟7.10.2刚刚在昨天发布,如果你遇到7.10.2的奇怪问题,可能值得检查7.10.1是否也受到影响。