0

我创建了一个新的 yesod 项目,

yesod init
cd lemonstand && cabal sandbox init && cabal install

包依赖解析失败,

next goal: warp (dependency of lemonstand-0.0.0)
rejecting: warp-3.0.12.1, 3.0.12,,,,(conflict: lemonstand => warp>=1.3 && <1.4)
rejecting: warp-1.3.10.2, 1.3.10.1,,,,(conflict: transformers==0.4.3.0, warp => transformers>=0.2.2 && <0.4)
rejecting: warp-1.2.2, 1.2.1.1,,,,(conflict: lemonstand =>warp>=1.3 && <1.4)
Backjump limit reached (change with --max-backjumps)

在运行cabal exec ghc-pkg list transformers时,它显示,

/opt/ghc/7.8.4/lib/ghc-7.8.4/package.conf.d
   transformers-0.3.0.0
/home/user/ws/yesod/lemonstand/.cabal-sandbox/x86_64-linux-ghc-7.8.4-packages.conf.d

错误行中的含义是什么conflict: transformers==0.4.3.0?而且由于warp期望transformers版本> 0.2.2 和< 0.4,我可以安装transformers在沙盒文件夹中吗?

由于转换器是 ghc 内置库的一部分,我不确定如何安装不同版本的transformers?

4

1 回答 1

1

看起来你已经达到了 cabal 的依赖求解器回跳的极限。你可以:

  • 添加标志--max-backjumps=-1 --reorder-goals
  • 按照使用 Stackage 的快速入门指南来避免此问题
  • 使用stack而不是 cabal,它解决了这个问题和许多其他问题。请注意,此工作流程仍在完善中
于 2015-06-30T08:37:40.473 回答