当尝试使用Stack构建现有项目时,我遇到了错误
bv not found
- Genesis requires >=0.3 && <0.4 && -any
- exp requires -any
在 stack init
期间 . 这些包都安装在沙箱中,来自hackage . 我'm almost sure Stack doesn't看看沙盒,但为什么't it find the packages from hackage? I' m也能够通过运行 cabal build
来构建 .
1 回答
堆栈最初并没有看Hackage . 它尝试仅使用Stackage快照中的包来构建项目(您可以在
stack.yaml
的resolver
字段中找到您正在使用的确切快照) .bv
似乎不在Stackage中(至少它不在latest LTS snapshot中) . 幸运的是,这个问题很容易解决:只需运行stack solver --modify-stack-yaml
即可 . 这将标识所有非Stackage依赖项并将它们添加到stack.yaml
的extra-deps
字段中 . 从那时起,这些依赖项将在项目的.stack-work
子目录中的某处构建,其方式与cabal-install沙箱中的包非常相似 .