目前,我在我的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重用?
答案 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相同的位置,则所有符号链接ghc
,ghci
,ghc-pkg
等将被覆盖以指向7.10。 2,但您仍然可以运行版本化程序ghc-7.10.1
,ghci-7.10.1
,ghc-pkg-7.10.1
等,或者告诉cabal
使用{{1}的特定编译器构建标志。所有库和库注册信息(无论是随GHC一起提供,是安装在用户包数据库中,还是安装在沙箱中)都是(默认情况下)存储在GHC版本特定的子目录下,因此不同版本的GHC不会干扰每个其他
如果您的磁盘空间不足,我建议不要删除GHC 7.10.1。毕竟7.10.2刚刚在昨天发布,如果你遇到7.10.2的奇怪问题,可能值得检查7.10.1是否也受到影响。