41 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Download
Here are some ways to install hledger - choose one that suits you. And please do let us know or update this page if you have any trouble.
The current hledger release is 1.14.2; here are the release notes.
 
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-uiOn Linux, note #1030 workaround | |
| Docker Linux, Mac, Windows | docker pull dastapov/hledger | more.. | 
| Homebrew Linux, Mac, Windows | brew install hledger | |
| Wine Linux, Mac, FreeBSD | Install Wine & use the Windows binary below | |
| Windows | ||
| Windows binaries | hledger.zipfrom Appveyor CI | |
| GNU/Linux | ||
| Arch | pacman -S hledger hledger-ui hledger-web | |
| Gentoo | sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web | |
| Debian | sudo apt install hledger hledger-ui hledger-web | more.. | 
| Ubuntu | sudo apt install hledger hledger-ui hledger-web | more.. | 
| Fedora | sudo dnf install hledger | more.. | 
| Void | xbps-install -S hledger hledger-ui hledger-web | |
| BSD | ||
| OpenBSD WIP | make -C /usr/ports/openbsd-wip/productivity/hledger install | more.. | 
| Other | ||
| Sandstorm Community/private cloud platform | HLedger Web app | 
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 -Oless hledger-install.sh#
satisfy yourself that the script is
safebash hledger-install.sh#
runs stack or cabal, installing stack if needed | 
| stack Linux, Mac, Windows | stack install --resolver=nightly-2019-03-21 hledger hledger-web hledger-ui#
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
and hledger-ui
packages from the stack or cabal commands above. To estimate the build
time remaining, add --dry-run.
Using stack
The latest release of stack (eg 1.9.3) will be the most reliable and
is recommended. If you have an older version, you can probably run
stack upgrade to upgrade it. 1.7.1 is the oldest that will
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”
windows:
hledger-ui is not available
windows:
build hangs using GHC 8.6.3
windows:
cross-environment non-ascii display issues
arch: haskell
build 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
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(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
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. 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”, 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.