hledger/site/download.md
Simon Michael 3dbf97babd site: download: tweaks
[ci skip]
2018-10-06 09:12:55 -10:00

12 KiB

Download

There are several ways to install hledger:

a. Download the binary or system package for your platform (quick install, often not up to date) b. Build the latest release with hledger-install or with stack or with cabal (slow install, up to date) c. Build the development version with stack or cabal (slow install, super-fresh)

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. (Please help/report issues to packagers.)

Available binaries / system packages:

Platform Command/Link Installs version
(as of 20181006, latest is 1.11)
Mac brew install hledger
only hledger CLI
1.10
Windows Developer binaries: 1.10
no hledger-ui,doesn't work on old windows ?,many files in PATH causing hangs
1.10
 
Arch Linux pacman -S hledger 1.11
Debian sudo apt install hledger hledger-ui hledger-web 1.0.1 (Stable), 1.5 (Testing), 1.10 (Unstable)
Fedora sudo dnf install hledger 1.2 (27), 1.4 (28), 1.5 (Rawhide)
Gentoo sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web 1.11
RHEL sudo dnf install hledger ? ?
Ubuntu sudo apt install hledger hledger-ui hledger-web 0.26 (16.04 Xenial), 1.2 (18.04 Bionic), 1.5 (18.10 Cosmic)
Void Linux xbps-install -S hledger hledger-ui hledger-web hledger-api 1.10
 
FreeBSD ?
NetBSD ?
OpenBSD Ports: https://github.com/jasperla/openbsd-wip/pull/104
Third-party binaries: OpenBSD6.3/amd64
1.10
 
NixOS nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web
problems with hledger-ui on Mac ?
1.5 (stable), 1.11 (unstable)
Sandstorm hledger-web Sandstorm app
features needed
1.9.2

b. Build the latest release

Good choice! You'll get the latest features mentioned in the release notes. Below are three ways to build the latest release, in order of preference.

Note, building all hledger tools for the first time could take as much as an hour, 1G of free memory, and 1G of disk space. (We're not bloated; we just sit atop a lot of fine Haskell engineering!) You can kill and restart it without losing progress, and subsequent builds will be much faster. Also, here are some known build issues and workarounds:
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

b1. with hledger-install

The latest version of our hledger-install script (changes) is recommended as the easiest and most-likely-to-just-work build method, on at least GNU/linux and mac (it requires /bin/bash):

  • it requires only bash and curl/wget, and internet access
  • it automates the install process using stack or cabal, avoiding common pitfalls
  • it installs stack and GHC in ~/.stack, if needed
  • it installs the latest release of hledger and addon tools in ~/.local/bin or ~/.cabal/bin

Here's the quick, non-secure way to run it:

curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh | bash

And here's the more responsible way:

curl -sO https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh
less hledger-install.sh # do security review
bash hledger-install.sh

If you see link errors (like "/bin/ld.gold: error: cannot find -ltinfo"), you might need to install some extra system packages, such as the below, and try again. Please do a web search for the error and send corrections 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 # ?

Set up $PATH

You should extend your $PATH with ~/.local/bin (for stack) and/or ~/.cabal/bin (for cabal). Eg, if you use bash:

echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc

Test

Now you should be able to run the hledger tools and see the expected versions. Eg:

$ hledger --version
hledger 1.11
$ hledger-ui --version
hledger-ui 1.11
$ hledger web --version
hledger-web 1.11
$ hledger iadd --version
This is hledger-iadd version 1.3.6

Need help ?

If you are having trouble, please capture a debug log and send it to me via paste & IRC, the issue tracker, or email:

bash -x hledger-install.sh 2>&1 | tee hledger-install.log

b2. with stack

stack is the newer and easier of the Haskell build tools. If you prefer more control or if hledger-install failed, here's how to use stack yourself:

  1. Install or upgrade to the latest stack
    The latest version of stack (1.7.1) is recommended, for best avoidance of ecosystem breakages. If an older version fails to install hledger, you should install the latest release of stack and try again. If you can get at least stack 1.3 installed, eg from your system packages, you can usually run stack upgrade to quickly upgrade it to the latest.

    On Windows, the 64-bit version of stack is preferred.

  2. stack install --resolver=lts-12 cassava-megaparsec-1.0.0 hledger-lib-1.11 hledger-1.11 hledger-ui-1.11 hledger-web-1.11 hledger-api-1.11
    This installs the main hledger packages (and dependencies) from Stackage and/or Hackage. You can save some time by omitting hledger-* packages you don't want.
    (windows: hledger-ui is not available)

    You can kill and restart this without losing progress. To estimate the build time, add --dry-run.

    If you see "was generated with a newer version of hpack, please upgrade and try again" errors, you can ignore them. (Upgrade to the latest stack release to stop them.)

  1. If you see link errors..

  2. Set up $PATH

  3. Install addons ?
    Additional add-on commands, such as hledger-diff, hledger-iadd, hledger-interest, and hledger-irr can be installed similarly to the above.

  4. Test

b3. with cabal

cabal is the other Haskell build tool. If you're a cabal expert, feel free to use this in the usual way.

c. Build the development version

Also a good choice. Our master branch is stable enough for daily use, and includes the latest improvements.

  1. Install git and stack
  2. git clone https://github.com/simonmichael/hledger
  3. cd hledger
  4. stack install [hledger] # build all (or, just the command line UI)
  5. If you see link errors..
  6. Set up $PATH
  7. Test (Development versions will have a .99 suffix, 1.10.99 means 1.11-dev)

cabal users may find the cabal-install.sh or cabal.project files useful.