Instructions for installing Eta


You must have the following installed on your system:

  • Stack
    • Make sure the path that is obtained from running stack path --local-bin is present on the PATH.
  • JDK 7 or above
    • Make sure javac and java are on the PATH.
  • Check the OS-specific sections for additional requirements


  • Install bz2, ncurses and zlib.

    $ sudo apt-get install zlib1g-dev libncurses5-dev libbz2-dev

  • Make sure locale is set to UTF-8.

    $ export LC_ALL=en_US.UTF-8
    $ export LANG=en_US.UTF-8


Install bzip2, ncurses and zlib.

$ sudo dnf install zlib-devel ncurses-devel bzip2-devel


Install bz2, ncurses, and zlib.

$ sudo zypper install zlib-devel libncurses5 ncurses5-devel libbz2-devel


Make sure you have XCode installed and have accepted the license agreement (run XCode at least once).


On Windows, you have two options:

  1. Windows Subsystem for Linux (Windows 10 build 14986 or above)

    1. Enable WSL.
    2. Enter the root folder of WSL, and create a .local folder, and then inside of this create a bin folder.
    3. Follow the instructions for Ubuntu above to setup your environment.
    4. Proceed to source installation instructions below.
  2. Cygwin & MSYS

    1. Install Cygwin.
    2. Install MSYS.
    3. Proceed to source installation instructions below.


You have two options for installing:

  • The stable branch which contains the last version that had a binary release

$ git clone --branch stable --recursive --depth 1
$ cd eta

  • The master branch which has the latest version of Eta.

$ git clone --recursive --depth 1
$ cd eta

Below are the OS-specific installation instructions:

Linux/OS X

$ ./


$ install.cmd

If you omit the --recursive flag to git clone, you will need to initialize the project’s submodules before installing:

$ git submodule sync
$ git submodule update --init --recursive

Once the installation is done, you will now have access to the following command-line tools:

  • eta - The main compiler
  • etlas - The package manager and build tool

Check to ensure that they are on the PATH.

$ eta --version
$ etlas --version

If you obtain an error that either tool is missing, run the following command:

$ stack path --local-bin

Add the path that you obtain in the output to your PATH environment variable.

Updating Eta

If you want to update your source installation, you can follow the steps below.

Existing Clone

If you already have an existing clone of the repository, you can run the command below:

Linux/OS X

$ ./


$ update.cmd

Fresh Clone

If you want to do a fresh clone, you can run the steps below:

$ git clone --recursive --depth 1
$ cd eta

Linux/OS X

$ ./


$ cleaninstall.cmd

Jump to Module

Click here to jump to the basics module.