为什么aeson-native安装失败?

时间:2011-09-20 13:15:10

标签: haskell cabal yesod

我有两台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

2 个答案:

答案 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,这是移动实例之前的最新版本。