【问题标题】:Why does aeson-native installation fail?为什么aeson-native安装失败?
【发布时间】:2011-09-20 13:15:09
【问题描述】:

我有两台 Arch(64) 机器,我正在尝试安装 yesod。首先,一个简单的“cabal install yesod”进展顺利。其次,在构建 aesod-native 依赖项时出现以下错误:

正在配置 aeson-native-0.3.3...
预处理库 aeson-native-0.3.3...
构建 aeson-native-0.3.3...
[1 of 6] 编译 Data.Aeson.Functions ( Data/Aeson/Functions.hs, dist/build/Data/Aeson/Functions.o )
[2 of 6] 编译 Data.Aeson.Types (Data/Aeson/Types.hs, dist/build/Data/Aeson/Types.o)

数据/Aeson/Types.hs:196:22:
(NFData 对象)没有实例
使用rnf'<br> Possible fix: add an instance declaration for (NFData Object)<br> In the expression: rnf o<br> In an equation forrnf':rnf (Object o) = rnf o
在“NFData Value”的实例声明中
cabal:错误:某些软件包无法安装:
aeson-native-0.3.3 在构建阶段失败。例外是:
退出失败 1

在上述失败后,我重新安装了 ghc,并删除了 ghc-pkg 和 .cabal 目录。再次,同样的错误。 aeson-native 似乎没有什么问题,因为它在其他地方工作得很好,所以我的环境一定是罪魁祸首。在出现故障的机器上,我过去曾尝试过使用 pacman 偶尔管理 hackage 库(主要用于 xmonad)。不确定这是否重要,但我一直不确定 cabal 和 pacman 如何/是否知道彼此在做什么。

GHC 为 7.0.3。我在所有安装之前进行了 cabal 更新。有什么想法可能是这种环境的问题吗?

谢谢/O

【问题讨论】:

    标签: haskell cabal yesod


    【解决方案1】:

    你并不孤单。这应该可以通过以下方式解决:

    > cabal install deepseq-1.1.0.2
    > ghc-pkg unregister deepseq-1.2.0.1 --force
    

    然后你可以安装任何aeson 包。请通过输入 ghc-pkg list deepseq 来验证它确实是您安装的 deepseq-1.2.0.1


    几天前我也遇到了这个错误,但aeson 不是aeson-native。然后我在 github 上请求了一个 fix 并且它已经在 hackage 上,但不幸的是仅适用于 aeson 而不是 aeson-native。我可以建议你尝试拉请求修复aeson-native 包。回馈社会的感觉真好,试试吧! :)

    【讨论】:

    • 非常感谢,这解决了它(感谢下面的海报更详细地描述了 Hackage 上发生的事情)。缩小包装限制是我实际上可以自己推出而不完全搞砸的东西。谢谢大家!
    • 很高兴它对您有用,并且您还可以解释 hammars 提供更多信息的答案。顺便提一句。对于这些单行拉取请求,您可以使用 github 在线编辑器获得极大的优势。您避免了整个 clone-pull-edit-commit-push-pullrequest 步骤。 :D
    【解决方案2】:

    Object 只是 Data.Map 的类型同义词,而 Data.MapNFData 实例似乎最近是 moved from the deepseq package to containers

    但是,containers 的这个新版本显然还没有在 Hackage 上发布,所以由于您使用的是最新版本的deepseq,因此在这两个包中都找不到该实例。

    我希望这将很快得到纠正。同时,您应该可以将deepseq 降级到版本1.1.0.2,这是实例被移动之前的最新版本。

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 2014-12-26
      • 2012-09-28
      • 2018-07-19
      • 2020-07-05
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多