跳到内容

安装或升级

安装堆栈

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

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

信息

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

GitHub上的版本

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

https://get.haskellstack.org/stableURL

格式为的URLhttps://get.haskellstack.org/stable/<平台><扩展>指向最新稳定版本。有关示例,请参阅手册下载链接。

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

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

或:

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

注释

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

手动下载

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

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

  • 提取存档并将堆栈可在您的路径(请参阅路径第节)。

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

系统依赖项的安装取决于软件包管理器。为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软件包

一些Linux发行版有Stack的官方或非官方软件包,包括Arch Linux、Debian、Fedora、NixOS、openSUSE/SUSE Linux Enterprise、,和Ubuntu。

落后于Stack当前版本的Linux包

作为Linux包提供的Stack版本可能落后于Stack的当前版本。如果是,请使用堆栈升级--仅限二进制建议在安装后使用。对于1.3.0之前的Stack版本不支持--仅二进制,只是堆栈升级可能也有用。

Arch社区包存储库提供了包裹.您可以使用以下命令进行安装:

sudo pacman-S堆栈

此版本可能稍有滞后,但应在那天。当其中一个依赖项得到更新。

Arch User Repository(AUR)还提供了包裹.然而,其Stack版本落后,因此正在运行堆栈升级--仅二进制建议在安装后使用。对于不支持的旧堆栈版本--仅二进制,只是堆栈升级可能也有用。

要使用堆栈设置7.10.3之前版本的GHC或32位系统,您可能需要AURncurses5-compat-libs程序包已安装。

有Debian包装用于伸展和向上。然而,发行版的Stack版本滞后在后面。

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

关注的用户nixos不稳定通道或Nixpkgs主人分支可以使用命令:

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

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

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

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

    cabal2nix--外壳./--无勾--no-haddock>shell.nix

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

  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
苏多·齐珀arhttp://download.opensuse.org/repositories/devel:/languages:/haskell/SLE_12/devel:languages:haskell.repo堆栈中的sudo zypper

有Ubuntu包装适用于Ubuntu 18.04及更高版本。然而,发行版的Stack版本滞后在后面。

可以设置堆栈命令的自动完成。进一步了解信息,请参阅外壳自动完成文档。

macOS上Stack的大多数用户也将拥有最新的软件工具开发(参见Xcode命令行工具(见下文)。

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

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

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

或:

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

注释

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

信息

我们通常在当前版本的macOS上进行测试,并尽最大努力保持它与三个最新的主要版本兼容。堆栈可能也适用于旧版本。

手动下载

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

  • 提取存档并放置堆栈路径上的某个位置(请参阅路径第节)。

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

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

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

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

或:

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

注释

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

安装Stack或一些包(例如。网络)需要C源编译可能会失败,原因是configure:error:C编译器无法生成可执行文件.那样的话,你应该通过-拱臂64作为一部分CFLAGS公司环境变量。此设置将由您选择的C编译器。

#假设BASH低于

#传递与导致错误的命令内联的CFLAGS
CFLAGS公司=“-拱臂64${CFLAGS公司:-}" some_command_to_install_stack(某些命令到安装堆栈)CFLAGS公司=“-拱臂64${CFLAGS公司:-}" 堆栈 [建造|安装]

#--或--

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

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

手动下载

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

  • 提取存档并放置堆栈路径上的某个位置(请参阅路径第节)。

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

使用自制软件

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

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

  • 通常,Homebrew将从预先构建的二进制文件(也称为“pour from a瓶子”),但如果它开始尝试从源代码构建所有内容(这将花费数小时),请参阅他们关于该主题的常见问题解答.

Xcode命令行工具

macOS并没有提供软件开发所需的所有工具,但一组有用的工具,称为Xcode命令行工具,是随时可用。每个Xcode版本(苹果的集成开发环境),还可以从Apple单独获得Xcode。该系列还包括macOS SDK(软件开发工具包)。macOS SDK提供标头macOS API的文件。

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

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

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

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

如果在安装Stack后,运行堆栈设置以失败configure:error:无法运行C编译的程序。这表明未安装Xcode命令行工具。

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

Xcode 10为macOS 10.14(Mojave)和更改了位置macOS系统标头的。作为解决方法,提供了一个额外的包由Apple公司在/usr/include(使用/包含).

堆栈命令的自动完成

可以设置“堆栈”命令的自动完成。进一步了解信息,请参见外壳自动完成文档。

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

长用户PATH环境变量

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

抗病毒软件

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

您可能会看到“Windows Defender SmartScreen阻止了无法识别的app from starting”警告。如果是,点击更多信息,然后单击仍要运行按钮出现。

我们建议使用安装程序安装到默认位置,因为将使烟囱安装堆栈升级开箱即用。

手动下载

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

  • 打开存档并放置堆栈.exe路径上的某个位置(请参阅路径第节)。

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

路径

您可以通过将可执行文件复制到PATH上的任何位置来安装Stack。A类安装的好地方是Stack本身将安装的同一目录可执行文件,这取决于操作系统:

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

$HOME/.local/bin

如果PATH中没有该目录,则可能需要更新路径。可以通过编辑~/.bashrc文件。

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

%APPDATA%\本地\bin

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

如果PATH中没有该目录,则可能需要更新路径。这可以通过搜索“Edit Environment variables for your帐户”。

注释

如果您使用GH杯安装烟囱、GHCup将可执行文件放入箱子GHCup根目录中的目录。

中国用户

如果您试图在中国境内安装Stack:

  • 截至2020年2月24日,下载链接的内部连接有限中国大陆。如果是这种情况,请手动下载(理想情况下通过VPN)并按照本手册中的说明安装Stack与操作系统相关的页面。

  • 安装后,您的配置yaml需要在之前配置文件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代理设置,而其他程序(包括Bash)则进行没有。这意味着在系统首选项中配置“http代理设置”(macOS)不会导致堆栈流量通过代理。

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

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

升级堆栈

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

注释

如果您使用GH杯要安装Stack,您还应使用GHCup升级Stack。GHCup使用名为堆栈通过文件管理Stack的版本堆叠垫片。堆栈将升级时可能会覆盖可执行文件。

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

  1. 这个堆栈升级命令,用于下载堆栈可执行文件,或从源代码构建它,并将其安装到Stack的“local-bin”目录(请参见堆栈路径--local-bin). 如果不同且允许在当前Stack可执行文件的目录中安装副本。(如果不允许复制,复制堆栈来自Stack的“local-bin”目录到系统位置。)你可以使用堆栈升级获取最新的官方版本,以及堆栈升级--git要安装来自GitHub,生活在流血边缘。确保堆栈可执行文件位于PATH上。请参阅路径第节。

  2. 如果您正在使用包管理器,并且对坚持使用发行版中正式发布的二进制文件(这可能会延迟在最新版本的Stack之后),只需遵循您的用于升级的常规包管理器策略。例如:

    更新源更新已安装包
  3. 这个get.haskellstack.org网站脚本支持-(f)的参数覆盖当前堆栈可执行文件。例如,命令:

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

    或:

    wget-qO-https://get.haskellstack.org网址/| sh-s--f
  4. 手动按照上述步骤从下载最新的可执行文件GitHub发布页面并替换旧的可执行文件。

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

  1. 这个堆栈升级命令,用于下载堆栈可执行文件,或从源代码构建它,并将其安装到Stack的“local-bin”目录(请参见堆栈路径--local-bin). 如果不同且允许在当前Stack可执行文件的目录中安装副本。(如果不允许复制,复制堆栈来自Stack的“local-bin”目录到系统位置。)你可以使用堆栈升级获取最新的官方版本,以及堆栈升级--git安装来自GitHub,生活在流血边缘。确保堆栈可执行文件位于PATH上。请参阅路径第节。

  2. 手动按照上述步骤从下载最新的可执行文件GitHub发布页面并替换旧的可执行文件。

安装早期版本

要安装特定版本的Stack,请在GitHub发布页面、和单击其“资产”下拉菜单下的相应链接。

或者,使用URLhttps://github.com/commercialhaskell/stack/releases/download/vVERSION/stack-VERSION-PLATFORM.EXTENSION.例如,Stack版本2.1.0.1,osx-x86_64的tarball位于https://github.com/commercialhaskell/stack/releases/download/v2.1.0.1/stack-2.1.0.1-osx-x86_64.tar.gz.

这里有一段appveyor.yml公司文件,借用自达尔估价师.yml.根据需要更改PATH和VERSION的值。

安装:
  - 设置PATH=C:\Program Files\Git\mingw64\bin;%路径%
  - curl--silent--show-error--output stack.zip--location“https://github.com/commercialhaskell/stack/releases/download/v%stack_VERSION%/stack-%STACK_VERSION%-windows-x86_64.zip“
  - 7z x堆栈.zip堆栈.exe
  - 堆栈设置>空
  - git子模块更新--init--recursive