3

尝试使用 Stack 构建现有项目时,出现如下错误

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

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

4

1 回答 1

4

stack 一开始并不看 Hackage。它尝试仅使用Stackage快照中的包来构建您的项目(您可以在resolver字段中找到您正在使用的确切快照stack.yaml)。bv似乎不在 Stackage 中(至少它不在最新的 LTS 快照中)。幸运的是,这个问题很容易解决:只需运行stack solver --modify-stack-yaml. 这将识别所有非 Stackage 依赖项并将它们添加extra-depsstack.yaml. 从那时起,这些依赖项将构建在.stack-work项目的子目录中的某个位置,其方式与 cabal-install 沙箱中的包非常相似。

于 2015-08-14T18:46:22.060 回答