跳到内容

设置

建立的目标是堆栈上的可执行文件路径。当堆栈使用时,它会根据需要设置其他内容。

我如何知道Stack是否在路径?

命令堆栈。如果堆栈可用,则应输出有关如何使用它。

如何找到Stack所在的位置?

命令其中-一个堆栈.

命令where.exe堆栈.

如何找到可用的Stack版本?

命令stack--版本stack—数字版本.

如果我不使用GHCup,是否有Stack的首选位置?

你可以把堆栈可执行文件路径然而好的位置是Stack本身将安装可执行文件的目录。该位置取决于操作系统:

堆栈将可执行文件安装到:

$HOME/.local/bin

如果您的路径,您可能需要更新你的路径。可以通过编辑~/.bashrc文件。

堆栈将可执行文件安装到:

$Env:APPDATA\local\bin

例如:C: \Users\<用户名>\AppData\Roaming\local\bin.

如果您的路径,您可能需要更新你的路径。这可以通过搜索“编辑环境变量”来完成“开始”下的“为您的帐户”。

堆栈将可执行文件安装到:

%APPDATA%\本地\bin

例如:C: \Users\<用户名>\AppData\Roaming\local\bin.

如果您的路径,您可能需要更新你的路径。这可以通过搜索“编辑环境变量”来完成“开始”下的。

注释

如果使用GHCup安装Stack,GHCup会将可执行文件放在箱子GHCup根目录中的目录。

要获取和使用Stack,需要先准备好其他一些东西:

  • 一台计算机


    堆栈至少需要5 GB的磁盘空间1。了解一下会有帮助什么平台您的计算机提供。

  • 访问互联网


    堆栈需要从远程位置获取文件。

  • 终端软件


    堆栈在命令行中使用。您的操作系统可能提供终端软件和替代品可能可用。

  • 代码编辑器


    您可以使用任何可以编辑文本文件的编辑器程序,但不能使用代码编辑器建议使用Haskell代码文件的扩展名。

安装堆栈

Stack可以安装在大多数Linux发行版、macOS和Windows上。

其他操作系统呢?

Stack可以支持更多的操作系统。请求支持操作系统,请提交问题在Stack的GitHub存储库。

烟囱可以直接安装,也可以使用GHCup工具安装。

堆栈可以安装在各种操作系统上。

在哪里可以找到Stack的二进制分布?

堆栈可执行文件位于发布第页,共页Stack的GitHub存储库。

格式为的URLhttps://get.haskellstack.org/stable(https://get·haskellstack.org/stable)/<平台>。<扩展>指向最新的稳定版本。手动下载链接使用这些URL。

是否第页安装脚本有标志和选项吗?

这个第页安装脚本识别以下可选标志和选项:-q个抑制输出并指定不干预(可能是在CI环境中使用脚本的先决条件);-(f)军队安装,即使检测到现有的Stack可执行文件;-d<目录>指定堆栈的目标目录可执行文件。

对于大多数Linux发行版,在x86_64或AArch64计算机上架构,安装Stack的最简单方法是命令:

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

或:

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

这些命令下载脚本文件并使用第页.

安装脚本需要root访问权限吗?

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

我可以手动下载Stack吗?

对。Linux发行版的手动下载取决于您的机器体系结构,x86_64或AArch64/ARM64。

  • 点击下载最新版本的存档文件。

  • 提取存档并将堆栈可执行文件在你的路径.

  • 确保已安装所需的系统依赖项。其中包括GCC、GNU Make、xz、perl、libgmp、libffi和zlib。我们还推荐Git和GPG。

系统依赖项的安装取决于Linux发行版的包管理器。提供了注释用于Arch Linux、CentOS、Debian、Fedora、Gentoo和Ubuntu。

sudo pacman-S make gcc ncurses git gnupg xz zlib gmp libffi zlib
sudo yum install perl make automake gcc gmp-devel libffi zlib zlib-devel xz tar git gnupg
sudo apt-get安装g++gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg netbase
sudo dnf安装perl make automake gcc gmp-devel libffi zlib zlib-devel xz tar git gnupg

确保您拥有ncurses公司包装带有USE=tinfo.无则Stack将无法安装GHC。

sudo apt-get安装g++gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg netbase
  • 点击下载最新版本的存档文件。

  • 提取存档并将堆栈可执行文件在你的路径.

  • 确保已安装所需的系统依赖项。其中包括GCC、GNU Make、xz、perl、libgmp、libffi和兹利卜。我们还推荐Git和GPG。

系统依赖项的安装取决于Linux发行版的包管理器。提供了注释用于Arch Linux、CentOS、Debian、Fedora、Gentoo和Ubuntu。

sudo pacman-S make gcc ncurses git gnupg xz zlib gmp libffi zlib
sudo yum install perl make automake gcc gmp-devel libffi zlib zlib-devel xz tar git gnupg
sudo apt-get安装g++gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg netbase
sudo dnf安装perl make automake gcc gmp-devel libffi zlib zlib-devel xz tar git gnupg

确保您拥有ncurses公司包装带有USE=tinfo.没有它,Stack将无法安装GHC。

sudo apt-get安装g++gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg netbase
我可以使用Linux包来获取Stack吗?

一些Linux发行版有用于堆栈,包括Arch Linux、Debian、Fedora、NixOS、openSUSE/SUSELinux Enterprise和Ubuntu。然而,Stack版本可用因为Linux软件包可能落后于Stack的当前版本在某些情况下,滞后可能会很大。

落后于Stack当前版本的Linux包

如果Linux包中可用的堆栈版本落后堆栈的当前版本,使用堆栈升级--仅二进制建议在安装后使用。

Arch额外软件包存储库提供了一个官方的x86_64包裹.您可以使用以下命令进行安装:

sudo pacman-S堆栈

Arch User Repository(AUR)还提供:

有Debian包装为巴斯特等人。但是,发行版的Stack版本落后。

Fedora包含Stack,但其Stack版本可能会落后。

关注的用户nixos不稳定通道或Nixpkgs主人分支可以将最新的Stack版本安装到其使用以下命令配置文件:

nix-env-f“<nixpkgs>”-iA堆栈

或者,可以从源代码构建包,如下所示。

  1. 使用以下命令克隆git repo:

    git克隆https://github.com/commercialhaskell/stack.git
  2. 创建外壳nix使用以下命令创建文件:

    cabal2nix--外壳。/.--no-check--no-haddock>shell.nix

    注意,测试在NixOS上失败,因此使用--无颈管此外,Haddock目前不适用于堆栈,所以--非哈多克禁用它。

  3. 使用以下命令将Stack安装到用户配置文件中:

    nix-env-i-f外壳.nix

有关将Stack与Nix一起使用的更多信息,请请参阅Stack上的NixOS手册部分.

还有一个用于openSUSE或SUSE Linux的非官方软件包企业。其Stack版本可能会落后。要安装它:

堆栈中的sudo zypper
苏多·齐珀arhttp://download.opensuse.org/repositories/devel:/languages:/haskell/opensuse_Leap_42.1/devel:languages:haskell.repo堆栈中的sudo zypper
苏多酵母http://download.opensuse.org/repositories/devel:/languages:/haskell/SLE_12/devel:languages:haskell.repo堆栈中的sudo zypper

有Ubuntu包装适用于Ubuntu 20.04及更高版本。

我可以设置堆栈命令的自动完成吗?

对。有关更多信息,请参阅外壳自动完成文档。

macOS上Stack的大多数用户还将拥有最新的工具软件开发。

如果我不确定我有那些工具怎么办?

macOS并没有提供软件所需的所有工具但它是一组有用工具的集合,称为Xcode命令行工具随时可用。这个的一个版本每个版本的Xcode(苹果的集成开发环境),也可以从苹果与Xcode分开。该系列还包括macOSSDK(软件开发工具包)。macOS SDK提供头文件用于macOS API。

如果使用的命令引用通用Xcode命令行工具并且未安装Xcode命令行工具,macOS可能会提示你来安装这些工具。

macOS还附带一个命令行工具,xcode选择,那可以用于获取Xcode命令行工具。命令xcode-select--打印路径打印当前选定的(活动的)开发人员目录。如果目录没有存在,或为空,则Xcode命令行工具不是安装。

如果未安装Xcode命令行工具,请使用命令xcode-select--安装打开要请求的用户界面对话框工具的自动安装。

macOS的升级有时可能需要现有的Xcode命令要卸载的Line Tools和更新版本的工具安装。可以通过删除目录报告者xcode-select--打印路径.

如果在安装Stack后,运行堆栈设置失败具有:

configure:error:无法运行C编译的程序。

表示未安装Xcode命令行工具。

如果构建失败,并显示以下消息*.小时找不到文件也可能表示Xcode命令行工具不是最新的。

Xcode 10为macOS 10.14(Mojave)和更改了位置macOS系统标头的。作为一种解决方法,额外的包是由苹果公司提供,该公司将收割台安装到基本系统在下面/usr/include(使用/包含).

支持哪些版本的LLVM编译器和工具链?

各版本GHC的文档确定了以下版本支持的LLVM。下表总结了GHC的最新版本:

GHC版本 LLVM版本
9.12.2 11至15
9.10.1 11至15
9.8.4 11至15
9.6.7 11至15
9.4.8 10至14
9.2.8 9至12
9.0.2 9、10或12
8.10.7 9至12
8.8.4 7
8.6.5 6
8.4.4 5

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

基于Intel的Mac计算机具有x86_64体系结构的处理器。对于大多数基于Intel的Mac计算机,最简单的安装Stack的方法是命令:

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

或:

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

这些命令下载脚本文件并使用第页.

安装脚本需要root访问权限吗?

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

我可以手动下载Stack吗?

对:

  • 点击下载x86_64最新版本的存档文件架构。

  • 提取存档并放置堆栈在你的某个地方路径.

现在可以从终端中的命令行运行Stack。

苹果硅Mac电脑有一个M系列芯片。这些芯片使用称为ARM64或AArch64的体系结构。

对于使用苹果硅芯片的Mac电脑,最简单的安装方式堆栈将命令:

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

或:

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

这些命令下载脚本文件并使用第页.

安装脚本需要root访问权限吗?

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

如果我出错怎么办C编译器无法生成可执行文件?

安装Stack或一些包(例如。网络)需要C源代码编译可能会失败,原因是:

配置:错误:C编译器无法生成可执行文件

那样的话,你应该通过-拱形臂64作为的一部分CFLAGS公司环境变量。此设置将由您选择的C编译器。

#假设BASH低于

#通过与导致错误的命令一致的CFLAGS
CFLAGS公司=“-拱臂64${CFLAGS公司:-}" 一些命令或安装堆栈CFLAGS公司=“-拱臂64${CFLAGS公司:-}" 堆栈 [建造|安装]

#--或--

#~/.bash_profile
#注意:只有在不需要交叉编译或记住取消设置时才需要执行此操作
#需要时CFLAGS
出口 CFLAGS公司=“-拱臂64${CFLAGS公司:-}"

该设置指示C编译器为编译对象ARM64。然后可以将其与为ARM64构建的库链接。如果没有该指令,C编译器将被Cabal调用在x86-64中运行时,将编译x86-65对象并尝试将它们与现有的ARM64库链接,导致错误以上。

我可以手动下载Stack吗?

对:

  • 点击下载最新版本的存档文件AArch64体系结构。

  • 提取存档并放置堆栈在你的路径.

现在可以从终端中的命令行运行Stack。

我可以使用Homebrew包管理器获取Stack吗?

自制软件是一个流行的macOS包管理器。如果你有它酿造工具已安装,您只需命令:

brew安装haskell-stack
  • 自制配方奶粉和瓶子非官方的和滞后稍微落后于新的Stack版本,但倾向于在内部更新一两天。

  • 通常,Homebrew将从预先构建的二进制文件(又名“pour”)安装”),但如果它开始尝试从源(需要数小时),请参阅他们关于该主题的常见问题解答.

我可以设置堆栈命令的自动完成吗?

对。有关更多信息,请参阅外壳自动完成文档。

大多数使用Windows的计算机都具有x86_64机器体系结构。更多最近,微软提供了在Arm上运行的Windows处理器。

在64位Windows上,安装Stack最简单的方法是下载并使用Windows安装程序.

堆栈根

默认情况下,Windows安装程序将设置堆栈根通过设置堆栈_根环境变量到C: \sr.

抗病毒软件

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

您可能会看到“Windows Defender SmartScreen阻止无法识别的应用程序启动“当您尝试运行安装程序。如果是,请单击更多信息,然后单击仍要运行出现的按钮。

我的Windows用户名中有空格

GHC 9.4.1和更高版本有一个错误,这意味着如果通往温室气体可执行文件中有一个空格字符。Stack的“programs”目录的默认位置将具有如果用户名环境变量包含一个空格。

解决方案是将Stack配置为使用不同的位置其“程序”目录。有关更多信息,请参阅本地程序路径非项目特定配置选项文档。

堆栈2.9.1、2.9.3和2.11.1:长用户路径环境变量

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

我们建议使用安装程序安装到默认位置,这将使烟囱安装堆栈升级正确工作开箱即用。

我可以手动下载Stack吗?

对:

  • 点击下载最新版本的存档文件。

  • 打开存档并放置堆栈.exe在你的路径.

现在可以从终端中的命令行运行Stack。

GHC项目尚未提供运行于防护窗。

中国用户:下载

截至2020年2月24日,下载链接与在中国大陆。如果您遇到这种情况,请继续手动下载(最好通过VPN)并安装Stack本页上适用于您的操作系统的说明。

独立的GH杯项目提供了一个工具可用于安装Stack和其他Haskell相关工具,包括GHC和Haskell语言服务器(HLS)。HLS是Haskell扩展用于流行代码的程序编辑。

GHCup为机器架构和其他地方没有提供的操作系统。

默认情况下,安装GHCup的脚本(可以多次运行)还配置Stack,以便如果Stack需要GHC版本,GHCup需要获取和安装该版本。

基于中国的用户:配置

安装后,需要配置Stack才能下载大文件始终来自中国境内(不依赖VPN)。请在底部添加以下内容全局配置文件(配置yaml):

###如果您住在中国,请添加此内容
安装位置:
- "http://mirrors.tuna.tsinghua.edu.cn/stackage/stack-setup.yaml"
网址:
  最新快照: http://mirrors.tuna.tsinghua.edu.cn/stackage/snapshots.json

包装索引:
- 下载-前缀: http://mirrors.tuna.tsinghua.edu.cn/hackage/
如果我使用HTTP代理怎么办?

在具有IP地址的HTTP代理后面使用堆栈IP(IP)和端口港口,首先设置环境变量http_代理然后运行Stack命令。例如:

导出http_proxy=IP:PORT烟囱安装

在大多数操作系统上,程序不必遵循“系统范围”的HTTP代理。一些程序,如浏览器,确实尊重此“系统范围”HTTP代理设置,而其他程序,包括砰,不要。这意味着在系统中配置“http代理设置”首选项(macOS)不会导致堆栈流量通过代理。

$Env:http_proxy=IP:PORT(端口)烟囱安装

程序不必遵循“系统范围”HTTP代理。一些程序(如浏览器)确实尊重这种“系统范围”HTTP代理设置,而其他程序不设置。这意味着配置控制面板中的“http代理设置”不会导致堆栈通过代理的流量。

设置http_proxy=IP:PORT烟囱安装

程序不必遵循“系统范围”HTTP代理。一些程序(如浏览器)确实尊重这种“系统范围”HTTP代理设置,而其他程序不设置。这意味着配置控制面板中的“http代理设置”不会导致堆栈通过代理的流量。

升级堆栈

Stack项目建议使用Stack的最新发布版本。

如果已安装Stack,则升级它取决于您是否正在使用Stack或GHCup管理Stack的版本。

如果使用GHCup管理Stack的版本,请始终使用它

如果使用GHCup安装Stack,则还应使用GHCup升级堆叠。

GHCup使用名为堆栈管理Stack的版本,通过文件堆叠垫片。堆栈可能会覆盖可执行文件升级时。

升级Stack有不同的方法类Unix操作系统(包括macOS)和Windows。

基本上有四种不同的方法:

  • 使用堆栈升级命令


    有关更多信息,请参阅堆栈升级文档。

  • 手动下载


    按照上述步骤手动下载最新的可执行文件并替换旧的可执行文件。

  • 使用第页安装脚本


    使用get.haskellstack.org网站脚本及其-(f)标记为覆盖当前的Stack可执行文件。例如,命令或者:

    卷曲-sSLhttps://get.haskellstack.org网址/| sh-s--f

    或:

    wget-qO-https://get.haskellstack.org网址/| sh-s--f
  • 使用包管理器


    按照常规的包管理器方法进行升级。对于例子:

    更新源更新已安装包

    请注意,发行版中正式发布的二进制文件可能明显落后于Stack的最新版本。

基本上有两种不同的方法:

  • 使用堆栈升级命令


    有关更多信息,请参阅堆栈升级文档。

  • 手动下载


    按照上述步骤手动下载最新的可执行文件并替换旧的可执行文件。

独立的GH杯项目提供了关于如何使用GHCup管理Stack等工具版本的指导。


  1. 单个版本的GHC约为3 GB,本地副本约为2 GB黑客软件包索引。