我试图了解如何使用stack and stackage.org。当我第一次安装并使用它时,stackage.org是LTS-3.8(“解析器”)。从那时起,stackage.org现在有了LTS-3.11。
首先,我想确认这是什么意思。堆栈是软件包的存储库,其中对于特定的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版本,我如何告诉堆栈默认情况下这样做?
如果我要“升级”较旧的项目以使用新的LTS版本怎么办?
最佳答案
究竟。 (并且,如果您需要LTS 3.8集中未包含的软件包,则可以通过extra-deps
的stack.yaml
部分进行指定。堆栈将从Hackage抓取它们并为您的项目单独安装它们,而不会影响LTS快照或其他项目。)
使用例如stack new projectname --resolver=lts-3.11
设置新项目的解析器。堆栈默认为您已经使用的最新LTS快照,因此一旦您的项目具有最新的LTS,将来的新项目也会随之而来。
更改resolver
文件中的stack.yaml
字段。该更改将在您下次构建项目时生效。
关于haskell - 了解Haskell的堆栈程序以及解析器和LTS版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33446558/