【问题标题】:How to install a package using stack?如何使用堆栈安装包?
【发布时间】:2015-06-24 15:16:15
【问题描述】:

使用 cabal,我可以使用以下命令安装 hakyll:

cabal install hakyll

如何使用堆栈做同样的事情?

【问题讨论】:

标签: haskell cabal cabal-install package-management haskell-stack


【解决方案1】:
stack install hakyll

stack 提供了一组不会炸毁您的机器的精选软件包。如果您想查看哪些软件包可用,或者确切支持哪个版本,或者您可以在哪个版本的GHC 上获得它,请查看https://www.stackage.org/

例如,您现在可以同时为GHC 7.8.4GHC 7.10.1 获取hakyll 4.6.9.0。漂亮整齐。 - source

编辑:我忘了提一下,王元的方法适用于获取未整理到stackage 中的hakyll 版本。您需要什么版本取决于您。

【讨论】:

  • 如何安装仅在 hackage 上而不在 stackage 上的软件包?是安装cabal-install的首选方法还是下载tarball和stack install呢?
  • 我尝试了 stack install acceleration-examples 并得到了巨大的错误:在构建构建计划时,遇到了以下异常,在尝试时会递归要解决这个问题。甚至无法用谷歌搜索堆栈构建计划是什么。
【解决方案2】:

stack initstack new生成的stack.yaml中添加hakyll

yaml 文件应如下所示:

flags: {}
packages:
  - '.'
extra-deps:
  - hakyll-4.7.1.0
resolver: lts-2.15

之后,运行stack solver 安装它

https://github.com/commercialhaskell/stack/wiki/stack.yaml

【讨论】:

  • 可能值得添加 stack install hakyll 本身可能足以获得所需的结果。
  • 我认为值得一提的是,此方法通常仅在所选快照中不存在所需版本的软件包时才使用。我相信项目安装包的首选方法是将其添加到*.cabal 文件的build-depends,或运行stack install hakyll 以首先对其进行测试。
【解决方案3】:

This documentation 为我工作

package.yaml上添加dependencies下的库,例如:

dependencies:
- base >= 4.7 && < 5
- hakyll # added here

【讨论】:

  • 出于某种原因,我觉得最近版本的 GHC 变得不必要地复杂了。我以前可以使用 cabal。现在我必须经历所有这些混乱(以及更多)才能编译我的旧程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 2016-09-11
  • 2019-09-25
  • 2017-06-18
相关资源
最近更新 更多