了解 Haskell 的堆栈程序以及解析器和 LTS 版本
Understanding Haskell's stack program and the resolver and LTS version
我正在尝试了解如何使用 stack and stackage.org。当我第一次安装和使用它时,stackage.org 是 LTS-3.8("resolver")。从那时起,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 版本,我该如何让堆栈默认执行此操作?
如果我想 "upgrade" 旧项目使用新的 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.yaml
的 extra-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
为新项目设置解析器。 stack 默认为您已经在使用的最新 LTS 快照,因此一旦您拥有一个包含最新 LTS 的项目,未来的新项目也会效仿。
What about if I want to "upgrade" an older project to use a new LTS version?
更改 stack.yaml
文件中的 resolver
字段。更改将在您下次构建项目时生效。
我正在尝试了解如何使用 stack and stackage.org。当我第一次安装和使用它时,stackage.org 是 LTS-3.8("resolver")。从那时起,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 版本,我该如何让堆栈默认执行此操作?
如果我想 "upgrade" 旧项目使用新的 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.yaml
的 extra-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
为新项目设置解析器。 stack 默认为您已经在使用的最新 LTS 快照,因此一旦您拥有一个包含最新 LTS 的项目,未来的新项目也会效仿。
What about if I want to "upgrade" an older project to use a new LTS version?
更改 stack.yaml
文件中的 resolver
字段。更改将在您下次构建项目时生效。