找不到堆栈init包

时间:2015-08-14 18:08:54

标签: haskell cabal haskell-stack

当尝试使用Stack构建现有项目时,我遇到了错误,如

bv not found
- Genesis requires >=0.3 && <0.4 && -any
- exp requires -any

stack init期间。这些包都安装在沙箱中,来自hackage。我几乎可以肯定Stack不会查看沙箱,但为什么它不能从hackage中找到这些包呢?我也可以通过运行cabal build来构建。

1 个答案:

答案 0 :(得分:4)

堆栈最初并没有看Hackage。它尝试仅使用Stackage快照中的包来构建项目(您可以在resolver stack.yaml字段中找到您正在使用的确切快照。 bv似乎不在Stackage中(至少它不在latest LTS snapshot中)。幸运的是,这个问题很容易解决:只需运行stack solver --modify-stack-yaml即可。这将标识所有非Stackage依赖项,并将它们添加到extra-deps的{​​{1}}字段中。从那时起,这些依赖项将构建在项目的stack.yaml子目录中的某个位置,与cabal-install沙箱中的包非常类似。