当尝试使用Stack构建现有项目时,我遇到了错误,如
bv not found
- Genesis requires >=0.3 && <0.4 && -any
- exp requires -any
stack init
期间。这些包都安装在沙箱中,来自hackage。我几乎可以肯定Stack不会查看沙箱,但为什么它不能从hackage中找到这些包呢?我也可以通过运行cabal build
来构建。
答案 0 :(得分:4)
resolver
stack.yaml
字段中找到您正在使用的确切快照。 bv
似乎不在Stackage中(至少它不在latest LTS snapshot中)。幸运的是,这个问题很容易解决:只需运行stack solver --modify-stack-yaml
即可。这将标识所有非Stackage依赖项,并将它们添加到extra-deps
的{{1}}字段中。从那时起,这些依赖项将构建在项目的stack.yaml
子目录中的某个位置,与cabal-install沙箱中的包非常类似。