hledger/site/download.md
2018-03-10 13:10:44 +00:00

9.0 KiB
Raw Blame History

Download

Do you want to..

A. download a binary/system package ?

System packages are quickest to install (but they can be out of date or incomplete).

Windows: Latest available nightly builds (appveyor builds are not up to date, no hledger-ui)
Mac: brew install hledger (only hledger CLI is packaged)
Arch Linux: pacman -S hledger (haskell problems are common on Arch at present)
Debian, Ubuntu: sudo apt install hledger hledger-ui hledger-web
Fedora, RHEL: sudo dnf install hledger
Gentoo: sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web
Void Linux: xbps-install -S hledger hledger-ui hledger-web hledger-api
NixOS: nix-env -iA nixpkgs.haskellPackages.hledger \
  nixpkgs.haskellPackages.hledger-ui \
  nixpkgs.haskellPackages.hledger-web
(problems building hledger-ui on MacOS)
Sandstorm: hledger-web Sandstorm app -> demo - a hledger-web server in 3 clicks. (features needed)

B. build the latest release ?

Good choice! The release notes show what youll get. Below are three ways to build hledger, 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. 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:
freebsd 12: no cabal file found
openbsd 6: exec permission denied
openbsd: how to get stack

hledger-install

Our hledger-install script is recommended as the easiest and most-likely-to-just-work build method, on GNU/linux, mac and freeBSD (and possibly other BSDs if you install cabal-install first, or on unixlike environments on windows):

  • 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

Heres the quick, non-secure way to run it:

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

And heres the more responsible way:

curl -O 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 send any updates for this list):

Centos: sudo yum install -y libstdc++-devel ncurses-devel zlib-devel # ?
Debian, Ubuntu: sudo apt install -y libncurses5 # ?
Fedora, RHEL: sudo dnf install -y 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

Need help ?

If you have any other 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

stack

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

  1. Install or upgrade to the latest stack
    The latest version of stack (1.6.3+) is recommended, for best avoidance of ecosystem breakages. 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=nightly hledger-lib-1.5 hledger-1.5 [hledger-ui-1.5] [hledger-web-1.5] [hledger-api-1.5] 
    This installs the specified hledger packages (and dependencies) from Stackage and/or Hackage. The bracketed packages are optional; if you include them, dont type the brackets, and do always include the preceding hledger-lib and hledger packages.
    (windows: hledger-ui is not yet available)

    The command above uses stackages nightly snapshot. You might be able to reduce build time by specifying an older snapshot that youve used before (eg: --resolver=lts-10.8), or by omitting the resolver option. To estimate the build time, add --dry-run. You can kill and restart this without losing progress.

  1. Install system packages if needed

    If you see link errors, install the required system packages.

  2. Set up $PATH

    As above.

Now you should be able to run hledger --version (and hledger-ui --version, hledger-web --version etc. if installed) and see the latest version number. Additional add-on commands, such as hledger-diff, hledger-iadd, hledger-interest, and hledger-irr can be installed similarly to the above. Eg:

stack install --resolver nightly hledger-lib-1.5 hledger-1.5 hledger-iadd-1.3.1

cabal

cabal is the other Haskell build tool. If youre a cabal expert, feel free to use this instead.

C. build the development version ?

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

  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. Install system packages if needed
  6. Set up $PATH

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