For common Un*x operating systems (including macOS), all you need to do is run:
curl -sSL https://get.haskellstack.org/ | sh
or:
wget -qO- https://get.haskellstack.org/ | sh
Distribution packages are available for Ubuntu, Debian, Fedora, Arch Linux and FreeBSD. Binaries for other operating systems are listed below, and available on the Github releases page. For the future, we are open to supporting more OSes (to request one, please submit an issue).
Binary packages are signed with this signing key.
If you are writing a script that needs to download the latest binary, you can find links that always point to the latest bindists here.
We recommend installing to the default location with these installers, as that
will make stack install
and stack upgrade
work correctly out of the box.
If in doubt: you should prefer the 64-bit installer.
You may see a "Windows Defender SmartScreen prevented an unrecognized app from starting" warning when you try to run the installer. If so, click on More info, and then click on the Run anyway button that appears.
-
Download the latest release:
-
Unpack the archive and place
stack.exe
somewhere on your%PATH%
(see Path section below) and you can then runstack
on the command line. -
Now you can run
stack
from the terminal.
We generally test on the current version of macOS, but Stack is known to work on Sierra, El Capitan, Yosemite and Mavericks as well, and may also work on older versions (YMMV).
Run:
curl -sSL https://get.haskellstack.org/ | sh
- Download the latest release:
- Extract the archive and place
stack
somewhere on your$PATH
(see Path section below) - Now you can run
stack
from the terminal.
If you have the popular brew tool installed, you can just do:
brew install haskell-stack
- The Homebrew formula and bottles are unofficial and lag slightly behind new Stack releases, but tend to be updated within a day or two.
- Normally, Homebrew will install from a pre-built binary (aka "pour from a
bottle"), but if
brew
starts trying to build everything from source (which will take hours), see their FAQ on the topic.
After installation, running stack setup
might fail with configure: error: cannot run C compiled programs.
in which case you should run:
xcode-select --install
If you are on OS X 10.11 ("El Capitan") and encounter either of these problems, see the linked FAQ entries:
If you are on OS X 10.12 ("Sierra") and encounter GHC panic while building, see this issue
Use the generic Linux option.
There is also
a
Ubuntu package for
Ubuntu 16.04 and up. Note that the distribution's Stack version lags behind, so
we recommend running stack upgrade
after installing it.
Use the generic Linux option.
There is also
a
Debian package for
Stretch and up. Note that the distribution's Stack version lags behind, so
we recommend running stack upgrade
after installing it.
Use the generic Linux option.
There is also an unofficial
Copr repo.
Note that this Stack version may lag behind,
so we recommend running stack upgrade
after installing it.
Use the generic Linux option.
There is also an
unofficial
Fedora Copr repo which
can be enabled with: sudo dnf copr enable petersen/stack
. Note that this Stack
version may lag behind, so we recommend running stack upgrade
after installing
it.
Use the generic Linux option.
There is also an unofficial SUSE package. Note that this Stack
version may lag behind, so we recommend running stack upgrade
after installing
it. To install it:
-
Add the appropriate OBS repository:
-
openSUSE Tumbleweed
all needed is in distribution
-
openSUSE Leap
sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/haskell/openSUSE_Leap_42.1/devel:languages:haskell.repo
-
SUSE Linux Enterprise 12
sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/haskell/SLE_12/devel:languages:haskell.repo
-
-
Install:
sudo zypper in stack
There is an official package in the Arch community repository. So you can install it by simply doing:
sudo pacman -S stack
Note that this version may slightly lag behind, but it should be updated within the day. The package is also always rebuilt and updated when one of it's dependencies gets an update.
- stack latest stable version
- haskell-stack-git git version
In order to use stack setup
with older versions of GHC or on a 32-bit system,
you may need the
ncurses5-compat-libs
AUR package installed. If this package is not installed, Stack may not be able
to install older (< 7.10.3) or 32-bit GHC versions.
If you use the
ArchHaskell repository, you
can also get the haskell-stack-tool
package from there.
Users who follow the nixos-unstable
channel or the Nixpkgs master
branch can install the latest stack
release into their profile by running:
nix-env -f "<nixpkgs>" -iA haskellPackages.stack
Alternatively, the package can be built from source as follows.
-
Clone the git repo:
git clone https://github.com/commercialhaskell/stack.git
-
Create a
shell.nix
file:cabal2nix --shell ./. --no-check --no-haddock > shell.nix
Note that the tests fail on NixOS, so disable them with
--no-check
. Also, haddock currently doesn't work for stack, so--no-haddock
disables it. -
Install stack to your user profile:
nix-env -i -f shell.nix
For more information on using Stack together with Nix, please see the NixOS manual section on Stack.
Run:
curl -sSL https://get.haskellstack.org/ | sh
or:
wget -qO- https://get.haskellstack.org/ | sh
-
Download the latest release:
-
Linux 32-bit, libgmp4 (if you are on an older 32-bit distribution that only includes libgmp4 (libgmp.so.3), such as CentOS/RHEL/Amazon Linux 6.)
-
Extract the archive and place
stack
somewhere on your$PATH
(see Path section below) -
Ensure you have required system dependencies installed. These include GCC, GNU make, xz, perl, libgmp, libffi, and zlib. We also recommend Git and GPG. To install these using your package manager:
-
Debian / Ubuntu:
sudo apt-get install g++ gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg
-
Fedora / CentOS:
sudo dnf install perl make automake gcc gmp-devel libffi zlib xz tar git gnupg
(useyum
instead ofdnf
on CentOS and Fedora <= 21)- Fedora 24: In order to use
stack setup
on a 32-bit system, you may need to runsudo dnf install ncurses-compat-libs
. If this package is not installed, Stack may not be able to install 32-bit GHC versions. Alsosudo dnf install ncurses-compat-libs
if you nee
- Fedora 24: In order to use
-
Arch Linux:
sudo pacman -S make gcc ncurses git gnupg xz zlib gmp libffi zlib
- In order to use
stack setup
with older versions of GHC or on a 32-bit system, you may need the ncurses5-compat-libs AUR package installed. If this package is not installed, Stack may not be able to install older (< 7.10.3) or 32-bit GHC versions.
- In order to use
-
Gentoo users, make sure to have the
ncurses
package withUSE=tinfo
(without it, stack will not be able to install GHC).
-
-
Now you can run
stack
from the terminal.
(only 64-bit currently available, tested on FreeBSD 10.3-RELEASE)
Run:
curl -sSL https://get.haskellstack.org/ | sh
-
Install required dependencies:
pkg install devel/gmake perl5 lang/gcc misc/compat8x misc/compat9x converters/libiconv ca_root_nss
-
Download the latest release:
-
Extract the archive and place
stack
somewhere on your$PATH
(see Path section below) -
Now you can run
stack
from the terminal.
You can install stack by copying it anywhere on your PATH environment variable. We recommend installing in the same directory where stack itself will install executables (that way stack is able to upgrade itself!). On Windows, that directory is %APPDATA%\local\bin
, e.g. "c:\Users\Michael\AppData\Roaming\local\bin". For other systems, use $HOME/.local/bin
.
If you don't have that directory in your PATH, you may need to update your PATH (such as by editing .bashrc).
If you're curious about the choice of these paths, see issue #153
To get tab-completion of commands on bash, just run the following (or add it to
.bashrc
):
eval "$(stack --bash-completion-script stack)"
For more information and other shells, see the shell auto-completion page
There are essentially four different approaches to upgrade:
-
The
stack
tool itself ships with anupgrade
command, which download astack
binary or build it from source and install it to the default install path (e.g.~/.local/bin
or%APPDATA%\local\bin
; see the Path section above). You can usestack upgrade
to get the latest official release, andstack upgrade --git
to install from Git and live on the bleeding edge. Make sure the default install directory is on yourPATH
and takes precedence over the system installedstack
, or copystack
from that directory to the system location afterward. For more information, see this discussion. -
If you're using a package manager and are happy with sticking with the officially released binaries from the distribution (which may the lag behind latest version of Stack significantly), simply follow your normal package manager strategies for upgrading (e.g.
apt-get update && apt-get upgrade
). -
The get.haskellstack.org script supports the
-f
argument to over-write the current stack executable. For example:curl -sSL https://get.haskellstack.org/ | sh -s - -f
or:
wget -qO- https://get.haskellstack.org/ | sh -s - -f
-
Manually follow the steps above to download the newest binaries from the release page and replace the old binary.