# Download Here are some ways to install hledger - choose one that suits you. And please do [let us know](index.html#helpfeedback) or [update this page](https://github.com/simonmichael/hledger/blob/master/site/download.md) if you have any trouble. The current hledger release is **1.14.2**; here are the [release notes](release-notes.html).

## Binary packages These prebuilt binaries will install quickly: | | | | |----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
**Multiplatform** | |
*Packaged version(s):* | | [Nix]
*Linux, Mac* | **`nix-env -i -f https://github.com/NixOS/nixpkgs/archive/fe41fd.tar.gz -A hledger hledger-web hledger-ui`**
*On Linux, note [#1030](https://github.com/simonmichael/hledger/issues/1030), [#1033](https://github.com/simonmichael/hledger/issues/1033)*
| ![](https://img.shields.io/badge/Nix_package-1.14.2-brightgreen.svg) | | [Docker]
*Linux, Mac, Windows* | **`docker pull dastapov/hledger`** | [![](https://img.shields.io/badge/Docker_image-1.14.2-brightgreen.svg)](https://hub.docker.com/r/dastapov/hledger)
[more..](https://hub.docker.com/search?q=hledger&type=image&sort=updated_at&order=desc) | | [Homebrew]
*Linux, Mac, Windows* | **`brew install hledger`** | [![](https://repology.org/badge/version-for-repo/homebrew/hledger.svg)](https://formulae.brew.sh/formula/hledger) | | [Wine]
*Linux, Mac, FreeBSD* | *Install Wine & use the Windows binary below* | | |
**Windows** | | | | Windows binaries | **[hledger.zip]** *from Appveyor CI*
or [latest dev build](https://ci.appveyor.com/api/projects/simonmichael/hledger/artifacts/hledger.zip?branch=master) *may fix Windows 7 [#1039](https://github.com/simonmichael/hledger/issues/1039)* | [![](https://img.shields.io/badge/Windows_binaries-1.14.1+_20190309-brightgreen.svg)](https://ci.appveyor.com/project/simonmichael/hledger/builds/22955930/artifacts)
[![](https://img.shields.io/badge/Windows_binaries-nightly-brightgreen.svg)](https://ci.appveyor.com/project/simonmichael/hledger/build/artifacts) | |
**GNU/Linux** | | | | Arch | **`pacman -S hledger hledger-ui hledger-web`** | [![](https://repology.org/badge/version-for-repo/arch/hledger.svg)](https://www.archlinux.org/packages/?sort=&q=hledger) | | Gentoo | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`** | [![](https://img.shields.io/badge/Gentoo_package-1.14.2-brightgreen.svg)](https://gentoo.zugaina.org/Search?search=hledger) | | Debian | **`sudo apt install hledger hledger-ui hledger-web`** | [![Debian Unstable](https://repology.org/badge/version-for-repo/debian_unstable/hledger.svg)](https://packages.debian.org/unstable/hledger)
[![Debian Testing](https://repology.org/badge/version-for-repo/debian_testing/hledger.svg)](https://packages.debian.org/testing/hledger)
[![Debian Stable](https://repology.org/badge/version-for-repo/debian_stable/hledger.svg)](https://packages.debian.org/stable/hledger)
[![Debian Oldstable](https://repology.org/badge/version-for-repo/debian_oldstable/hledger.svg)](https://packages.debian.org/oldstable/hledger)
[more..](https://packages.debian.org/search?searchon=names&keywords=hledger) | | Ubuntu | **`sudo apt install hledger hledger-ui hledger-web`** | [![Ubuntu 19.04](https://repology.org/badge/version-for-repo/ubuntu_19_04/hledger.svg)](https://packages.ubuntu.com/disco/hledger)
[![Ubuntu 18.10](https://repology.org/badge/version-for-repo/ubuntu_18_10/hledger.svg)](https://packages.ubuntu.com/cosmic/hledger)
[![Ubuntu 18.04](https://repology.org/badge/version-for-repo/ubuntu_18_04/hledger.svg)](https://packages.ubuntu.com/bionic/hledger)
[![Ubuntu 16.04](https://repology.org/badge/version-for-repo/ubuntu_16_04/hledger.svg)](https://packages.ubuntu.com/xenial/hledger)
[![Ubuntu 14.04](https://repology.org/badge/version-for-repo/ubuntu_14_04/hledger.svg)](https://packages.ubuntu.com/trusty/hledger)
[more..](https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=hledger) | | Fedora | **`sudo dnf install hledger`** | [![Fedora Rawhide](https://img.shields.io/badge/Fedora_Rawhide_package-1.10-red.svg)](https://apps.fedoraproject.org/packages/hledger/)
[![Fedora 30](https://img.shields.io/badge/Fedora_30_package-1.5-red.svg)](https://apps.fedoraproject.org/packages/hledger/)
[![Fedora 29](https://repology.org/badge/version-for-repo/fedora_29/hledger.svg)](https://apps.fedoraproject.org/packages/hledger/)
[![Fedora 28](https://repology.org/badge/version-for-repo/fedora_28/hledger.svg)](https://apps.fedoraproject.org/packages/hledger/)
[![Fedora 27](https://repology.org/badge/version-for-repo/fedora_27/hledger.svg)](https://apps.fedoraproject.org/packages/hledger/)
[more..](https://apps.fedoraproject.org/packages/s/hledger) | | Void | **`xbps-install -S hledger hledger-ui hledger-web`** | [![Void Linux x86_64](https://repology.org/badge/version-for-repo/void_x86_64/hledger.svg)](https://voidlinux.org/packages/?q=hledger) | |
**BSD** | | | | [OpenBSD WIP](https://github.com/jasperla/openbsd-wip#how-to-use-this-tree) | **`make -C /usr/ports/openbsd-wip/productivity/hledger install`** | [![openbsd-wip port](https://img.shields.io/badge/openbsd--wip_port-1.10-red.svg)](https://github.com/jasperla/openbsd-wip/tree/master/productivity/hledger)
[more..](https://github.com/jasperla/openbsd-wip/tree/master/productivity) | |
**Other** | | | | [Sandstorm]
*Community/private cloud platform* | **[HLedger Web app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)** | ![](https://img.shields.io/badge/Sandstorm_app-1.9.1-red.svg) | [Docker]: https://www.docker.com/products/docker-desktop [Homebrew]: https://brew.sh [Linuxbrew]: https://linuxbrew.sh [Nix]: https://nixos.org/nix [Sandstorm]: https://sandstorm.io [cabal]: https://www.haskell.org/cabal [hledger.zip]: https://ci.appveyor.com/api/buildjobs/gudfa3gv7pj94ab0/artifacts/hledger.zip [stack]: https://haskell.fpcomplete.com/get-started [Wine]: https://www.winehq.org [notes]:: [debian contact]: debian-haskell@lists.debian.org (& Clint) [docker contact]: @adept [homebrew/linuxbrew contact]: @albins, @simonmichael [nix contact]: @peti [sandstorm contact]: @ocdtrekkie, @AaronM04, @ndarilek [stack/cabal contact]: @simonmichael [windows binaries contact]: @simonmichael [nix install variations]:: [nix-env -i hledger hledger-ui hledger-web]:: [nix-env -i hledger-1.14.1 hledger-ui-1.14 hledger-web-1.14]:: [nix-env -i -f '' -A hledger hledger-ui hledger-web]:: [fetches latest unstable]:: [nix-env -i -f channel:nixos-unstable -A hledger hledger-ui hledger-web]:: [pinned version]:: [nix-env -i -f https://github.com/NixOS/nixpkgs/archive/9c74e2.tar.gz -A hledger hledger-ui hledger-web]:: [nixpkgs]: https://hydra.nixos.org/project/nixpkgs [nix changes]: https://github.com/NixOS/nixpkgs/search?o=desc&q=hledger&s=committer-date&type=Commits [nix mentions]: https://search.nix.gsc.io/?q=hledger [nix hydra jobs]: http://hydra.nixos.org/search?query=hledger [nix stable mac jobs]: https://hydra.nixos.org/jobset/nixpkgs/nixpkgs-19.03-darwin#tabs-jobs -> hledger. [nix unstable jobs]: https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs -> hledger. [nix unstable linux builds]: https://hydra.nixos.org/job/nixpkgs/trunk/hledger.x86_64-linux [nix unstable mac builds]: https://hydra.nixos.org/job/nixpkgs/trunk/hledger.x86_64-darwin [repology badges, sometimes out of date]: https://repology.org/project/hledger/badges [custom badges]: https://shields.io [hledger-install.sh]: https://github.com/simonmichael/hledger/blob/master/hledger-install/hledger-install.sh ## Building from source You can build hledger wherever the Glasgow Haskell Compiler is supported. This can take a while, but it's normally a reliable process. Use one of the methods below to build the current hledger release. The hledger-install script requires only bash and installs the required tools. Or, you can install stack or cabal yourself and deal with them directly. | | | |--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | | | | [hledger-install.sh]
*Linux, Mac, WSL* | **`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh -O`**
**`less hledger-install.sh`**    *# satisfy yourself that the script is safe*
**`bash hledger-install.sh`**    *# runs stack or cabal, installing stack if needed*
| | [stack]
*Linux, Mac, Windows* | **`stack install --resolver=lts-14.1 hledger hledger-web hledger-ui --verbosity=error`**    *# installs GHC if needed.* | | [cabal]
*Linux, Mac, Windows* | **`cabal v2-update && cabal v2-install hledger-1.14.2 hledger-web-1.14.1 hledger-ui-1.14.2`** | On Windows, hledger-ui is not available and should be omitted from the commands above (except, it probably works in WSL). #### Resource usage Building Haskell programs typically involves downloading and compiling and optimising a lot of Haskell libraries. If you are doing it for the first time, know that building hledger could take 1-2G of disk, 1-2G of free memory, and up to an hour (though usually it's much less). It's fine to kill a build and restart it later; and your later builds will be much faster. If needed, you can save time/memory/disk space by omitting the [hledger-web](http://hackage.haskell.org/package/hledger-web) and [hledger-ui](http://hackage.haskell.org/package/hledger-ui) packages from the stack or cabal commands above. To estimate the build time remaining, add `--dry-run`. #### Using stack The latest version of stack (2.1.3 as of 2019-07) will likely work best, so we recommend it. If you have an older version, you can usually upgrade quickly with `stack upgrade`. Versions older than 1.7.1 will definitely not work. On Windows, the 64-bit version of stack is recommended. #### C libraries may be required A few C libraries, like terminfo, are required but not installed by the commands above. When such C libs are missing, the build will fail at the end with a link error such as "/bin/ld.gold: error: cannot find -ltinfo". To solve this, just install the appropriate system package(s) and run the build command again. These package names vary by platform. If you don't see your platform below, do a web search for the link error message (and send updates for this list): | |-----------------|------------------------------------------------------------------- | | Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`** | Fedora, RHEL: | **`sudo dnf install -y gmp-devel ncurses-devel`** #### Platform-specific build issues Here are some known build issues and workarounds on certain platforms: [nix: nix install on linux can fail with "cloning builder process: Operation not permitted"](https://github.com/simonmichael/hledger/issues/1030)\ [nix: on Linux, nix-installed hledger won't handle non-ascii data](https://github.com/simonmichael/hledger/issues/1033)\ [windows: hledger-web fails to start on Windows 7](https://github.com/simonmichael/hledger/issues/1039)\ [windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\ [windows: build hangs using GHC 8.6.3](https://github.com/well-typed/generics-sop/issues/93)\ [windows: cross-environment non-ascii display issues](https://github.com/simonmichael/hledger/issues/961#issuecomment-471229644)\ [arch: haskell build advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\ [arch: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\ [freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\ [openbsd 6: exec permission denied](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html)\ [openbsd: how to get stack](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816)\ #### Setting $PATH may be required After building you may see a message about where the executables were installed. After installation, make sure this install directory is configured in your shell's \$PATH (preferably near the start of it, in case you have older hledger binaries lying around). The install directory is: | | on non-Windows systems | on Windows |--------------------|------------------------|------------------------------------------ | If stack was used | `$HOME/.local/bin` | `%APPDATA%\local\bin` (eg `C:\Users\Joe\AppData\Roaming\local\bin`) | If cabal was used | `$HOME/.cabal/bin` | `%APPDATA%\cabal\bin` How to configure \$PATH is platform- and shell-specific. If you are using bash, this should take care of it: **`echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc`** #### Test the installation After a successful build and install, you should be able to run the hledger tools (whichever ones you installed) and see the expected versions: `$`**`hledger --version`**\ `hledger 1.14.2`\ `$`**`hledger-ui --version`**\ `hledger-ui 1.14.2`\ `$`**`hledger web --version`**\ `hledger-web 1.14.1`\ `$`**`hledger iadd --version`**\ `This is hledger-iadd version 1.3.9`\ And you can check that the unit tests pass (just for fun): `$`**`hledger test`**\ `...`\ `✅ 198 tests passed, no failures! 👍 🎉`\ ### Building the development version The master branch in hledger's git repo is stable enough for daily use, and includes the [latest improvements](https://github.com/simonmichael/hledger/commits/master). You'll need [git](https://en.wikipedia.org/wiki/Git) and [`stack`](http://haskell-lang.org/get-started) or [cabal](https://www.haskell.org/cabal/). This will build and install all of the main hledger tools using stack: **`git clone https://github.com/simonmichael/hledger`**\ **`cd hledger`**\ **`stack install`**\ cabal users may find the `cabal-install.sh` or `cabal.project` files useful. The --version output of development builds has a .99 suffix meaning "dev". So 1.14.99 means "1.15-dev", the in-development version of 1.15. ### Building the development version with docker You can also build development version in the docker container, which will take care of pulling all the necessary tools and dependencies: **`git clone https://github.com/simonmichael/hledger`**\ **`cd hledger/docker`**\ **`./build.sh`**\ This will build image tagged `hledger` with just the latest binaries inside. If you want to keep all the build artifacts and use the resulting image for hledger development, use `build-dev.sh` instead.