跳到内容

Haskell工具堆栈

欢迎使用哈斯克尔编程语言和Haskell工具堆栈(堆栈)!Stack是一个用于开发Haskell项目的程序。它针对的是新的和有经验的哈斯克勒。它是跨平台的旨在完全支持Linux、macOS和Windows上的用户。

堆栈功能:

如何安装Stack

Stack可以安装在大多数类Unix操作系统(包括macOS)上窗户。它至少需要5 GB左右的磁盘空间才能与一个磁盘一起使用GHC版本。

信息

除了下面描述的方法外,还可以安装Stack使用单独的GH杯的安装程序Haskell相关工具。GHCup为某些机器组合提供堆栈其他地方没有提供体系结构和操作系统。默认情况下安装GHCup(可以多次运行)的脚本还配置堆栈,以便如果Stack需要GHC版本,GHCup将接管获取并安装该版本。

对于大多数Linux发行版,最简单的安装Stack的方法直接(而不是使用GHCup)命令:

卷曲-sSLhttps://get.haskellstack.org网址/|嘘

或:

wget-qO-https://get.haskellstack.org网址/|嘘

注释

脚本位于获取.haskellstack.org使用请求root访问权限苏多。它需要这样的访问才能使用用于安装依赖项和安装的平台包管理器/usr/local/bin如果您更喜欢控制,请按照手册操作中的安装说明安装和升级指南.

从2020年末开始,苹果开始从Mac电脑向Intel电脑过渡处理器(基于Intel-based Mac)到苹果硅Mac电脑.

对于大多数基于Intel的Mac计算机,最简单的安装Stack的方法直接(而不是使用GHCup)命令:

卷曲-sSLhttps://get.haskellstack.org网址/|小时

或:

wget-qO-https://get.haskellstack.org网址/|小时

注释

脚本位于get.haskellstack.org网站将使用请求root访问权限苏多.它需要这样的访问使用平台的包管理器安装依赖项和要安装到/usr/local/bin。如果您更喜欢控制,请遵循中的手动安装说明安装和升级指南.

苹果硅Mac电脑具有M1、M1 Pro、M1 Max、M1 Ultra或M2芯片。这些芯片使用称为ARM64或AArch64的体系结构。

对于带有苹果硅的Mac电脑,安装Stack的最简单方法直接(而不是使用GHCup)命令:

卷曲-sSLhttps://get.haskellstack.org/|小时

或:

wget-qO-https://get.haskellstack.org网址/|小时

注释

脚本位于get.haskellstack.org网站将使用请求root访问权限苏多.它需要这样的访问使用平台的包管理器安装依赖项和要安装到/usr/local/bin。如果您更喜欢控制,请遵循中的手动安装说明安装和升级指南.

在64位Windows上,直接安装Stack(而不是使用GHCup)下载并安装Windows安装程序.

信息

默认情况下,Windows安装程序将堆栈根设置为C: \sr.

警告

Stack 2.9.1、2.9.3和2.11.1的Windows安装程序(仅限)将替换用户路径环境变量(而不是附加到它)如果超过1024个字符的限制。如果您现有的用户路径很长,请在运行安装程序之前保留它。

注释

带有防病毒软件的系统可能需要将Stack添加到“受信任”的应用程序。

对于其他操作系统和直接下载(而不是使用GHCup),请参阅安装和升级指南.

如何升级Stack

如果已安装Stack,则可以通过命令:

堆栈升级

注释

如果您使用GH杯要安装Stack,您也应该使用GHCup而不是Stack来升级Stack。

快速入门指南

要立即体验使用Stack和Haskell构建可执行文件,首先你需要遵循Stack安装指南.

第一步:开始你的新项目

启动名为的新项目我的项目,在终端:

堆叠新的my项目cd my项目堆栈构建堆栈执行my-project-exe
  • 这个堆叠新的my项目命令将创建一个新目录,名为我的项目。它包含正确启动项目所需的所有文件,使用默认模板。
  • 这个cd my项目命令将当前工作目录更改为目录。
  • 这个堆栈构建命令将生成模板项目并创建名为的可执行文件我的项目执行(在Windows上,my-project-exe.exe). 第一,如有必要,Stack将在一个隔离的位置下载GHC版本。这不会影响系统上的其他GHC安装。
  • 这个堆栈执行my-project-exe命令将运行(执行)构建的可执行文件,在Stack的环境中。

有关Stack命令的完整列表,以及这些命令的通用标志和选项命令,只需命令:

堆栈

有关特定堆栈命令的帮助,包括特定于例如,该命令堆栈构建,命令:

堆栈构建--帮助

如果要启动运行评估打印循环(REPL)环境,请执行以下命令:

堆栈repl

信息

堆栈ghci可以用来代替堆栈replGHCi是GHC的REPL工具。

人们将Haskell代码组织成包。如果要使用Stack进行安装Haskell包提供的可执行文件,则只需执行以下命令:

堆栈安装<包名称>

第2步:后续步骤

这个堆叠新的my项目步骤1中的命令应该创建了以下内容文件和目录(以及其他):

.⑪——应用程序   └── 主要.hs⑪——型钢混凝土   └── 图书馆⑪——测试│   └── 规格hs⑪——my-project.cabal公司⑪——包装.山药└── 堆垛山药

可执行文件(应用程序)的Haskell源代码位于文件中主要.hs.

可执行文件使用库。它的源代码在文件中图书馆.

的内容my-project.cabal公司描述了项目的包。那个文件是由的内容生成包装.山药.

信息

如果需要,可以删除包装.山药文件并更新my-project.cabal公司直接提交。堆栈将使用该文件。

的内容堆垛山药描述Stack自己的项目级配置。

您可以在中编辑源文件型钢混凝土目录(用于库)或这个应用程序目录(用于可执行文件(应用程序))。

随着项目的发展,您可能需要依赖另一个Haskell包。如果这样做,则将该新包的名称添加到文件包装.山药,在其中依赖项:第节。

信息

当您使用堆栈构建同样,Stack将使用包装.山药创建已更新my-project.cabal公司为你。

如果Stack报告Stack配置没有指定的版本然后按照Stack可能建议的操作添加特定的项目的包版本堆垛山药文件,在其额外步骤:第节。

这是关于如何使用堆叠。如果您想进一步了解,我们强烈建议您阅读Stack的引导的用户指南.

完整的堆叠指南

A完整用户指南到Stack可用,涵盖所有使用Stack的最常见方法。Stack文档中使用的术语还包括在中解释词汇表.

为什么选择Stack?

Stack是Haskell的一个构建工具,旨在满足哈斯克尔用户的需求,既有新鲜感又有经验。它强烈关注可复制的构建计划,多包项目,以及一组一致、易于学习的Stack命令。它还旨在提供可定制性和强大的体验开发人员需要。

Stack并不是孤立的。它建立在以下方面提供的伟大工作之上:

  • 这个格拉斯哥-哈斯克尔编译器(GHC公司),的首要Haskell编译器。Stack将管理您的GHC安装和自动为您的项目选择合适的GHC版本。
  • 这个电缆建造系统.Cabal是定义Haskell的规范程序包和图书馆对于正在执行生成。

    信息

    Cabal也是另一个构建工具的名称,由电缆安装包装。本指南通过阴谋集团对他们进行了区分(库)和Cabal(工具)。

  • 这个Hackage Haskell包存储库,一个储存库Haskell包的数以千计的开源库和应用程序可以帮助您完成工作完成。

  • 这个堆叠包装收集,套来自Hackage的软件包策划的也就是说,定期对其进行测试兼容性。堆栈默认使用堆栈包集以避免不兼容依赖项的问题。

Stack由志愿者团队和公司提供,由这个商业哈斯克尔组。该项目是以…为先锋FP完成满足以下需求商业Haskell用户。它已经成为一个蓬勃发展的开源项目满足各类Haskell用户的需求。

如果您想参与Stack,请查看对新人友好GitHub问题跟踪器上的标签。

问题、反馈和讨论

如何为Stack的维护或开发做出贡献

A类指导旨在帮助潜在的贡献者堆栈项目。

如果您已经安装了Stack的一个版本,并且Git应用程序以下步骤应该可以帮助您从使用Stack从源构建Stack开始:

  1. 克隆堆栈使用以下命令从GitHub中创建存储库:

    git克隆https://github.com/commercialhaskell/stack.git
  2. 将当前工作目录更改为克隆的堆栈目录,带有命令:

    cd堆栈
  3. 构建堆栈使用预先存在的Stack安装程序执行命令:

    堆栈构建
  4. 一旦堆栈已生成可执行文件,请使用命令:

    stack exec--堆栈--版本

    确保版本是最新的。

  5. 在GitHub存储库的问题跟踪器中,查找标记为对新人友好等待拉入请求标签。

如果需要快速检查更改,请执行以下命令:

堆栈repl

然后,在REPL的提示符下,命令:

:main--堆栈根=<path_to_root>--堆栈yaml=<path_to_stack.yaml><COMMAND>

这允许您设置特殊的堆栈根(而不是默认的堆栈根)并将您的命令瞄准特定的堆垛山药文件而不是文件在当前目录中找到。

如何卸载

要卸载Stack,只需删除:

  1. 堆栈根目录(请参见堆栈路径--堆栈根,在您之前卸载);
  2. 如果不同,则包含Stack的全局YAML配置文件的目录(请参见堆栈路径--全局配置,在卸载之前);
  3. 在Windows上,包含Stack工具的目录(请参见堆栈路径--程序,在卸载之前),它位于堆栈根目录;
  4. 这个堆栈可执行文件(请参见哪个堆栈,在类Unix操作上系统,或where.exe堆栈,在Windows上)。

您可能还想删除.堆垛工程任何Haskell项目中的目录您使用Stack构建的。这个堆栈卸载命令提供有关如何卸载Stack的信息。