17 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Download
There are lots of ways to install hledger. Here they are, organised by platform, with the usually most up-to-date methods at the top. Note the first three involve building from source, which is slower. Please send updates for this page, and help packagers keep their platform packages up to date.
| Latest release is 1.14.1 Release notes | ||
|---|---|---|
| Multiplatform | This method builds: | |
| hledger-install.sh Linux, Mac, WSL | Builds the latest release from source, avoids common
pitfalls, requires only bash, takes a while. In case of trouble, see Building from source. curl -sO https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.shless hledger-install.sh# satisfy yourself that the script is
safebash hledger-install.sh | Latest release | 
| stack
install Linux, Mac, Windows | Builds any version from source, requires stack. See Building from source. | Latest release, or any version | 
| cabal
install Linux, Mac, Windows | Builds any version from source, requires cabal and GHC. See
Building from source. | Latest release, or any version | 
| Docker Linux, Mac, Windows | docker pull dastapov/hledger(image info, more
images) | 1.14.1 | 
| Nix Linux, Mac | nix-env -i hledger hledger-ui hledger-web | |
| Mac | ||
| Homebrew | brew install hledger | |
| Windows | ||
| Linuxbrew | brew install hledger | |
| Windows binaries | hledger.zip no hledger-ui,doesn’t work on old windows ?,many files in PATH causing hangs | 1.12 | 
| GNU/Linux | ||
| Linuxbrew | brew install hledger | |
| Arch | pacman -S hledger hledger-ui hledger-web | |
| Debian | sudo apt install hledger hledger-ui hledger-web | |
| Fedora | sudo dnf install hledgeror (more complete & current): sudo dnf copr enable kefah/HLedger && sudo dnf install hledger | |
| Gentoo | sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web | 1.13.2 | 
| Ubuntu | sudo apt install hledger hledger-ui hledger-web | |
| Void | xbps-install -S hledger hledger-ui hledger-web | |
| BSD | ||
| OpenBSD | Ports: https://github.com/jasperla/openbsd-wip/pull/104 Third-party binaries: OpenBSD6.3/amd64 | 1.10 | 
| Other | ||
| Sandstorm Community/private cloud platform | hledger-web
Sandstorm app features needed | 1.9.2 | 
Building from source
Building hledger from source takes a bit longer than using a prebuilt package, but you can be sure of getting the latest release (or the latest dev version).
Below are three ways to build hledger. But first, some general tips:
- Building Haskell programs involves downloading and building and optimising a lot of dependencies. If you haven’t built Haskell software before, your first hledger build could take up to an hour, 1-2G of free memory, and 1-2G of disk. 
- Future builds will be much faster. 
- You can kill a build and restart it later without losing progress. 
- If you get link errors (eg: “/bin/ld.gold: error: cannot find -ltinfo”), you might need to install some extra system packages (C packages provided by your platform - not haskell 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 
 arch: No information found for ghc-8.4.2
 freebsd 12: no cabal file found
 openbsd 6: exec permission denied
 openbsd: how to get stack
 windows: hledger-ui is not available
 
- 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 + IRC, or the issue tracker, or email. 
Building with hledger-install.sh
If you don’t already have stack or cabal, or if you are having trouble with them, hledger-install.sh is an easy and reliable way to get the latest hledger, on systems which have the bash shell (and are supported by GHC: mac, linux, unix-like environments on windows..). It automates the installation of stack or cabal and then building the hledger tools, avoiding common pitfalls. Here’s how to run it (or, some folks will prefer to pipe it directly into bash):
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
Building with stack
stack
is the more reliable of Haskell’s two build tools for new users. You
need stack 1.7.1 or newer; the latest release (eg 1.9.3) is the most
reliable. You can often run stack upgrade to upgrade it.
64-bit Windows users should choose the 64-bit version of stack. The
following command installs the main hledger packages;
stack install --resolver=lts-13 hledger-lib-1.14 hledger-1.14.1 hledger-ui-1.14 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.14 hledger-api-1.14
You can save some time by omitting the optional hledger-ui, hledger-web
and/or hledger-api
packages. (On Windows, hledger-ui is not available.) To estimate the
build time, add --dry-run.
Some other add-on tools like hledger-diff, hledger-iadd, and hledger-interest can be installed like so:
stack install --resolver=lts-13 hledger-lib-1.14 hledger-diff-0.2.0.14 hledger-iadd-1.3.9 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
Building with cabal
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.14.1 hledger-ui-1.14 hledger-web-1.14 hledger-api-1.14 [hledger-diff-0.2.0.14 hledger-iadd-1.3.9 hledger-interest-1.5.3]
Set up PATH
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, 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(egC:\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.14.1
$hledger-ui --version
hledger-ui 1.14
$hledger web --version
hledger-web 1.14
$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
...
✅  188 tests passed, no failures! 👍 🎉
Build the development version
The master branch in hledger’s git repo is stable enough for daily
use, and includes the latest
improvements. You’ll need git and stack or 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”, ie the in-development version of 1.15.