尝试使用 Stack 构建现有项目时,出现如下错误
bv not found
- Genesis requires >=0.3 && <0.4 && -any
- exp requires -any
期间stack init
。这些软件包都安装在沙箱中,并且来自 hackage。我几乎可以肯定 Stack 没有查看沙箱,但为什么它不能从 hackage 中找到包?我也可以通过运行来构建cabal build
。
尝试使用 Stack 构建现有项目时,出现如下错误
bv not found
- Genesis requires >=0.3 && <0.4 && -any
- exp requires -any
期间stack init
。这些软件包都安装在沙箱中,并且来自 hackage。我几乎可以肯定 Stack 没有查看沙箱,但为什么它不能从 hackage 中找到包?我也可以通过运行来构建cabal build
。
stack 一开始并不看 Hackage。它尝试仅使用Stackage快照中的包来构建您的项目(您可以在resolver
字段中找到您正在使用的确切快照stack.yaml
)。bv
似乎不在 Stackage 中(至少它不在最新的 LTS 快照中)。幸运的是,这个问题很容易解决:只需运行stack solver --modify-stack-yaml
. 这将识别所有非 Stackage 依赖项并将它们添加extra-deps
到stack.yaml
. 从那时起,这些依赖项将构建在.stack-work
项目的子目录中的某个位置,其方式与 cabal-install 沙箱中的包非常相似。