gpt4 book ai didi

haskell - 堆栈构建工具: compatibility issue with LTS resolver

转载 作者:行者123 更新时间:2023-12-02 21:14:11 27 4
gpt4 key购买 nike

被宣传为 Haskell 工具的突破,我尝试从 Cabal 切换到 Stack。但是,我仍然遇到一个问题,即让项目与使用 cabal 运行的堆栈一起运行。我认为问题在于解析器设置的全局约束(例如堆栈中的长期支持包)不符合本地包依赖性。

举个具体的例子,我在0.14.0.6版本中使用了snap框架( http://snapframework.com/ )。使用 snap init 创建完整的 snap 项目后,我尝试使用 stack init 从 cabal 文件实例化堆栈构建计划。然而,堆栈没有找到满足约束的构建计划。另一方面,cabal install 成功构建了项目。

我对栈的理解有误吗?如何解决这一问题?

完整的错误日志如下所示,其中项目名称为 SnapFull:

Checking against build plan lts-3.7

* Build plan did not match your requirements:
base version 4.8.1.0 found
- SnapFull requires >=4 && <4.4

lens version 4.12.3 found
- SnapFull requires >=3.7.6 && <3.8

snap-loader-dynamic not found
- SnapFull requires ==0.10.*

snap-loader-static not found
- SnapFull requires >=0.9 && <0.10


Checking against build plan lts-2.22

* Build plan did not match your requirements:
base version 4.7.0.2 found
- SnapFull requires >=4 && <4.4

lens version 4.7.0.1 found
- SnapFull requires >=3.7.6 && <3.8

snap-loader-dynamic not found
- SnapFull requires ==0.10.*

snap-loader-static not found
- SnapFull requires >=0.9 && <0.10


Checking against build plan lts-3.8

* Build plan did not match your requirements:
base version 4.8.1.0 found
- SnapFull requires >=4 && <4.4

lens version 4.12.3 found
- SnapFull requires >=3.7.6 && <3.8

snap-loader-dynamic not found
- SnapFull requires ==0.10.*

snap-loader-static not found
- SnapFull requires >=0.9 && <0.10


Checking against build plan nightly-2015-10-09

* Build plan did not match your requirements:
base version 4.8.1.0 found
- SnapFull requires >=4 && <4.4

lens version 4.12.3 found
- SnapFull requires >=3.7.6 && <3.8

snap-loader-dynamic not found
- SnapFull requires ==0.10.*

snap-loader-static not found
- SnapFull requires >=0.9 && <0.10


There was no snapshot found that matched the package bounds in your .cabal files.
Please choose one of the following commands to get started.

stack init --resolver lts-3.7
stack init --resolver lts-2.22
stack init --resolver lts-3.8
stack init --resolver nightly-2015-10-09

You'll then need to add some extra-deps. See:

https://github.com/commercialhaskell/stack/blob/master/doc/yaml_configuration.md#extra-deps

You can also try falling back to a dependency solver with:

stack init --solver

最佳答案

我建议尝试一下非 LTS 求解器:

$ stack init --resolver=ghc-7.10 --force

$ stack init --resolver=ghc-7.8 --force

这通常比 lts-* 更容易给出工作结果。解算器,但您无法从 LTS 的稳定性中受益。但既然你来自 Cabal,无论如何你之前都没有 LTS,所以你不妨从常规的 ghc-7.10 开始。或ghc-7.8解析器并查看稍后是否可以迁移到 LTS。

P.S.您还可以尝试夜间 sleep ,介于 lts-* 之间。和ghc-*我猜,但我自己没有尝试过。

编辑:stack init之后您通常还需要运行 stack solver --modify-stack-yaml 命令填充extra-deps您的 stack.yaml 部分具有根据 build-depends 计算的构建依赖项您的 .cabal 部分文件。我认为正在发生的事情是init仅使用指定的求解器配置项目,但不调用实际的依赖项解析。 (如果对此信息有任何更正,我将不胜感激。)

关于haskell - 堆栈构建工具: compatibility issue with LTS resolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33053124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com