# Download There are several ways to install hledger: a. [Download the binary or system package for your platform](#a) (quick install, often out of date) b. [Build the latest release with hledger-install](#b) or [with stack](#b2) or [with cabal](#b3) (slow install, up to date) c. [Build the development version with stack or cabal](#c) (slow install, cutting edge) ## a. Download a binary or system package for your platform Binaries or system packages are quickest to install, but they can be outdated or incomplete. **Available binaries / system packages:**
(please [update this page](https://github.com/simonmichael/hledger/edit/master/site/download.md) /
report issues to packagers)
| Platform | Command/Link | Installs [version](https://repology.org/metapackage/hledger/badges)
(latest is [1.13.1](http://hledger.org/release-notes)) |----------------------|------------------------|---------------------------------------------------------------------------------------- | [Mac][] | **`brew install hledger`**
[only hledger CLI](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520) | 1.11.1 | [Windows][] | Developer binaries: **[1.12](https://ci.appveyor.com/api/buildjobs/vcocma20843lpfdo/artifacts/hledger.zip)**
[no hledger-ui](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444),[doesn't work on old windows ?](https://github.com/simonmichael/hledger/issues/774),[many files in PATH causing hangs](https://github.com/simonmichael/hledger/issues/791) | 1.12 | *GNU/Linux:* | | [Arch Linux][] | **`pacman -S hledger [hledger-ui] [hledger-web] [hledger-api]`** | 1.12 | CentOS | ? | | [Debian][] | **`sudo apt install hledger hledger-ui hledger-web`** | 1.0.1 (Stable), 1.10 (Testing), 1.10 (Unstable) | [Fedora][], RHEL | **`sudo dnf install hledger`**
or (more complete & current):
**`sudo dnf copr enable kefah/HLedger && sudo dnf install hledger`** | 1.2 (27), 1.4 (28), 1.5 (Rawhide)
1.9.1 (kefah) | [Gentoo][] | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`** | 1.11.1 | [Ubuntu][] | **`sudo apt install hledger hledger-ui hledger-web`** | 0.26 (16.04), 1.2 (18.04), 1.5 (18.10), 1.5 (19.04) | [Void Linux][] | **`xbps-install -S hledger hledger-ui hledger-web hledger-api`** | 1.10 | *BSD:* | | FreeBSD | ? | | NetBSD | ? | | OpenBSD | Ports: **[https://github.com/jasperla/openbsd-wip/pull/104](https://github.com/jasperla/openbsd-wip/pull/104)**
Third-party binaries: **[OpenBSD6.3/amd64](https://s3.amazonaws.com/openbsd-hledger/index.html)** | 1.10 | *Other:* | | [Docker][] | **`docker pull dastapov/hledger`** ([more info](https://hub.docker.com/r/dastapov/hledger)) | [Nix][] | **`nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`**
[problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613) | 1.10 (stable), 1.11.1 (unstable) | [Sandstorm][] | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)**
[features needed](https://github.com/simonmichael/hledger/issues/425) | 1.9.2 [Mac]: https://formulae.brew.sh/formula/hledger [Mac contact]: mailto: [Windows]: https://ci.appveyor.com/project/simonmichael/hledger [Windows contact]: mailto:simon@joyful.com [Arch Linux]: https://www.archlinux.org/packages/?sort=&q=hledger [Arch Linux contact]: mailto: [Debian]: https://packages.debian.org/search?searchon=names&keywords=hledger [Debian contact]: mailto:debian-haskell@lists.debian.org [Fedora]: https://apps.fedoraproject.org/packages/s/hledger [Fedora contact]: mailto: [Gentoo]: https://gentoo.zugaina.org/Search?search=hledger [Gentoo contact]: mailto: [Ubuntu]: https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=hledger [Ubuntu contact]: mailto: [Void Linux]: https://voidlinux.org/packages/?q=hledger [Void Linux contact]: mailto: [Docker]: https://hub.docker.com/search?q=hledger&type=image&sort=updated_at&order=desc [Docker contact]: mailto: [Nix]: http://hydra.nixos.org/search?query=hledger [Nix contact]: mailto: [Sandstorm]: https://sandstorm.io ## b. Build the latest release Good choice! You'll get the latest features and fixes mentioned in the [release notes](release-notes.html), and you'll be in a good position to give feedback and get support. Below are three ways to build the latest release, in order of preference. But first, some tips: - Building all hledger tools and dependencies for the first time could take as much as an hour, 1-2G of free memory, and 1-2G of disk space. You can kill and restart the build without losing progress, and future builds will be much faster. - If you get link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"), you might need to install some extra system packages and try again. To find the right system package, check the list below, or do a web search for the error message (and please send updates for this list): | |-----------------|------------------------------------------------------------------- | CentOS: | **`sudo yum install -y libstdc++-devel ncurses-devel zlib-devel`** | Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`** | Fedora, RHEL: | **`sudo dnf install -y gmp-devel ncurses-devel`** - Here are some known build issues and workarounds on certain platforms: [arch: 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)\ [windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\ - If you have trouble, please send me a copy/paste of the output, including the commands you typed, at least up to the first error, via [paste](http://paste.hledger.org) + [IRC](http://irc.hledger.org), or the [issue tracker](http://bugs.hledger.org), or [email](docs.html#helpfeedback).
### b1. with hledger-install On systems with bash installed (mac, linux, unix-like windows..), if you don't already have stack or cabal, or if you are having trouble with them, [hledger-install](https://github.com/simonmichael/hledger/tree/master/hledger-install) is an easy and reliable way to get the latest hledger. It automates the install process using stack or cabal, avoiding common pitfalls: **`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh`**\ **`less hledger-install.sh`** *# satisfy yourself that the script is safe*\ **`bash hledger-install.sh`** ### b2. with stack [`stack`](http://haskell-lang.org/get-started) is the more reliable of Haskell's two build tools, for new users. You need stack 1.7.1 or newer; the latest release is best. On 64-bit Windows, use the 64-bit version of stack. The following command installs the main hledger packages; you can save some time by omitting hledger-ui, hledger-web and/or hledger-api (optional user interfaces). On Windows, hledger-ui is not available. To estimate the build time, add `--dry-run`: **`stack install --resolver=lts-13 hledger-lib-1.13.1 hledger-1.13.1 hledger-ui-1.13.1 brick-0.46 text-zipper-0.10.1 config-ini-0.2.4.0 data-clist-0.1.2.2 word-wrap-0.4.1 hledger-web-1.13 hledger-api-1.13`**\ Other [add-ons](/hledger.html#third-party-add-ons) like [hledger-diff](http://hackage.haskell.org/package/hledger-diff), [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd), or [hledger-interest](http://hackage.haskell.org/package/hledger-interest) can be installed like so: **`stack install --resolver=lts-13 hledger-lib-1.13.1 hledger-diff-0.2.0.14 hledger-iadd-1.3.8 brick-0.46 text-zipper-0.10.1 config-ini-0.2.4.0 data-clist-0.1.2.2 word-wrap-0.4.1 hledger-interest-1.5.3`**\ ### b3. with cabal [cabal](https://www.haskell.org/cabal/) is the other Haskell build tool. If you're a cabal expert, use it in the usual way, eg: **`cabal v2-update`**\ **`cabal v2-install hledger-1.13.1 hledger-ui-1.13.1 hledger-web-1.13 hledger-api-1.13 [hledger-diff-0.2.0.14 hledger-iadd-1.3.8 hledger-interest-1.5.3]`**\
#### Set up PATH You will probably 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, to preempt older hledger system packages you may have installed). 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 You should now be able to run the hledger tools (whichever ones you installed) and see the expected versions: `$`**`hledger --version`**\ `hledger 1.13.1`\ `$`**`hledger-ui --version`**\ `hledger-ui 1.13.1`\ `$`**`hledger web --version`**\ `hledger-web 1.13`\ `$`**`hledger iadd --version`**\ `This is hledger-iadd version 1.3.8`\ And you can check that the unit tests pass (just for fun): `$`**`hledger test`**\ `...`\ `✅ 188 tests passed, no failures! 👍 🎉`\ ## c. Build the development version Also a good choice. Our master branch 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/). Eg, 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. See the troubleshooting, PATH, and test tips [above](#b). Note development builds will have a .99 suffix (eg 1.13.99 means "1.14-dev").