我正在努力理解如何使用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版本呢?
发布于 2015-10-31 02:23:12
这是否意味着该项目已被设置为只使用在LTS-3.8下验证的包和版本?
一点儿没错。(如果您需要没有包含在LTS3.8集中的包,您可以通过stack.yaml的stack.yaml部分指定它们。堆栈将从Hackage抓取它们,并为您的项目分别安装它们,而不会影响LTS快照或其他项目。)
如果我现在想要启动一个新项目,并希望在新项目中使用最新的LTS版本,那么默认情况下如何告诉堆栈这样做呢?
使用例如stack new projectname --resolver=lts-3.11设置新项目的解析器。堆栈默认为您已经使用的最近的LTS快照,因此,一旦您有了一个具有最新LTS的项目,未来的新项目也会跟着做。
如果我想“升级”一个旧的项目来使用一个新的LTS版本呢?
更改resolver文件中的stack.yaml字段。更改将在下次构建项目时生效。
https://stackoverflow.com/questions/33446558
复制相似问题