我有两台Arch(64)机器,我试图安装yesod。首先,一个简单的'cabal安装yesod'进行得非常好。第二,我在构建aesod-native依赖时遇到以下错误:
配置aeson-native-0.3.3 ...
预处理库aeson-native-0.3.3 ...
建立aeson-native-0.3.3 ...
[1/6]编译Data.Aeson.Functions(Data / Aeson / Functions.hs,dist / build / Data / Aeson / Functions.o)
[2/6]编译Data.Aeson.Types(Data / Aeson / Types.hs,dist / build / Data / Aeson / Types.o)
数据/埃宋/ Types.hs:196:22:
(NFData Object)没有实例
因使用rnf'<br> Possible fix: add an instance declaration for (NFData Object)<br> In the expression: rnf o<br> In an equation for
rnf'而引起的:rnf(Object o)= rnf o
在“NFData Value”的实例声明中 cabal:错误:某些软件包无法安装:
aeson-native-0.3.3在建设阶段失败。例外是:
ExitFailure 1
在上面的失败之后,我做了一个新的ghc安装,并删除了ghc-pkg和.cabal目录。同样,同样的错误。 aeson-native似乎没有任何问题,因为它在其他地方工作正常,所以我的环境必须以某种方式归咎于我。在失败的机器上,我过去曾经尝试使用pacman来管理hackage库(主要用于xmonad)。不确定它是否重要,但我从未确定如何/如果cabal和pacman知道彼此在做什么。
GHC是7.0.3。我在所有安装之前都进行了cabal更新。任何想法这个环境可能有什么问题?
感谢/ O
答案 0 :(得分:5)
你并不孤单。这应该可以通过以下方式解决:
> cabal install deepseq-1.1.0.2
> ghc-pkg unregister deepseq-1.2.0.1 --force
然后您可以安装任何aeson
包。请输入deepseq-1.2.0.1
ghc-pkg list deepseq
我几天前也遇到过这个错误,但aeson
没有aeson-native
。我在github上请求fix然后它已经在hackage上了,但不幸的是只有aeson
而不是aeson-native
。我建议您尝试拉取请求修复aeson-native
包。把东西回馈给社区真的很不错,试试吧! :)
答案 1 :(得分:3)
Object
只是Data.Map
的同义词同义词,NFData
的{{1}}实例最近显示为moved from the deepseq
package to containers
。
然而,这个新版本的Data.Map
显然尚未在Hackage上发布,因此,由于您使用的是containers
的最新版本,因此无法在任何一个包中找到该实例。
我希望尽快纠正这个问题。同时,您应该能够将deepseq
降级到版本deepseq
,这是移动实例之前的最新版本。