繁体   English   中英

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

[英]Understanding Haskell's stack program and the resolver and LTS version

我想了解如何使用stack和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 ,stack告诉我:

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM