haskell - 了解Haskell的堆栈程序以及解析器和LTS版本

标签 haskell haskell-stack

我试图了解如何使用 stack and stackage.org 。当我第一次安装并使用它时,stackage.org 的版本是 LTS-3.8(“解析器”)。从那时起,stackage.org 现在有了 LTS-3.11。

首先,我想确认一下这意味着什么。 Stackage 是一个软件包存储库,其中对于特定的 LTS 版本(例如 3.8),这些软件包已被验证可以协同工作。因此 LTS-3.8 的软件包可以一起工作,LTS-3.11 的软件包也可以一起工作。继续...

当我运行stack new projectname时,堆栈告诉我:

Checking against build plan lts-3.8
Selected resolver: lts-3.8

这是否意味着该项目已设置为仅使用在 LTS-3.8 下验证的软件包和版本?

如果我现在想要启动一个新项目,并希望在新项目中使用最新的 LTS 版本,我如何告诉 stack 默认执行此操作?

如果我想“升级”旧项目以使用新的 LTS 版本怎么办?

最佳答案

Does this mean that the project has been set up to use only the packages and versions that were verified under LTS-3.8?

正是如此。 (如果您需要 LTS 3.8 集中未包含的软件包,您可以通过 stack.yamlextra-deps 部分指定它们。stack 将从 Hackage 中获取它们并为您的项目单独安装它们,而不影响 LTS 快照或您的其他项目。)

If I now want to start a new project and want to use the latest LTS version with the new project, how do I tell stack to do that by default?

使用例如stack new projectname --resolver=lts-3.11 为新项目设置解析器。堆栈默认为您已经使用的最新 LTS 快照,因此一旦您拥有具有最新 LTS 的项目, future 的新项目也会效仿。

What about if I want to "upgrade" an older project to use a new LTS version?

更改 stack.yaml 文件中的 resolver 字段。更改将在您下次构建项目时生效。

关于haskell - 了解Haskell的堆栈程序以及解析器和LTS版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33446558/

相关文章:

haskell - 阻止 GHC 警告我一个特定的缺失模式

optimization - 幂等性的这种概括的名称是什么?

haskell - 如何获取字符串 'aa' 、 ab' 到 'yz' 、 'zz' ?

haskell - 堆栈安装在几乎任何东西上崩溃

haskell - 如何在 Haskell 中打印任何内容

parsing - 创建类型为 Parser a -> Parser b -> Parser (要么 a b)的解析器组合器

haskell - 如何在 Elm(或 Haskell)中的函数之间共享数据

haskell - Hakyll 教程出错

haskell - 堆栈运行单一基准测试

haskell - 删除 Stack/Cabal 软件包并安装旧版本