hledger/site/download.md
2017-07-16 07:24:13 +01:00

7.1 KiB
Raw Blame History

Download

Choose a method:

A. I want to download a packaged version

Packaged versions are the quickest to install, but they sometimes lag behind the latest release, or provide only some of the hledger tools.

Windows: Latest developer builds (no hledger-ui, please help)
Mac: brew install hledger (CLI only, please help)
Arch Linux: pacman -S hledger
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
Sandstorm: hledger-web Sandstorm app -> demo (get a hledger-web server in 3 clicks. Features needed, please help)

B. I want to build the latest release

The latest release (see release notes) is a good choice. You have to build it, but this is relatively easy:

  1. Install stack

    Avoid using versions older than 1.0 which give “Invalid package ID” errors; latest version is good.
    On Windows, the 64-bit version is recommended.
    On Arch, you may need to also install GHC manually.
    Ensure ~/.local/bin (or Windows equivalent) is added to your $PATH. Eg if youre a bash user:
      echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc && source ~/.bashrc

  2. stack install --resolver lts-8 hledger-lib-1.3 hledger-1.3 [hledger-ui-1.3] [hledger-web-1.3] [hledger-api-1.3] 

    This command installs the specified hledger packages (and required haskell libraries and tools) from the latest Stackage LTS snapshot (and if needed, Hackage). It is reliable, but can take significant time (minutes to hours) and space (megabytes to a gigabyte) depending on your connection, machine and past installations. You can add --dry-run to see what it plans to do, and kill/restart it without losing progress.
    You can omit the bracketed packages to save time, and maybe install them later. If you include them, dont type the brackets. hledger-ui is not yet available on Windows.
    If it says you need to run stack setup, do that then run the install command again.
    If it gives “Invalid package ID” errors, get a newer version of stack (see step 1).
    If youre a cabal expert, feel free to use that instead of stack.
    If you get errors due to missing C libraries (like curses or terminfo), install those manually, eg:

    Debian, Ubuntu: sudo apt install libncurses5-dev
    Fedora, RHEL: sudo dnf install ncurses-devel

    If you need to build with an older GHC version for some reason, these commands should work (except on Mac Sierra which requires at least GHC 8.0.2/lts-8):
    stack install --resolver lts-7 hledger-lib-1.3 hledger-1.3 hledger-ui-1.3 hledger-web-1.3 hledger-api-1.3 brick-0.19 vty-5.15.1 data-clist-0.1.2.0 # GHC 8.0.1
    stack install --resolver lts-6 hledger-lib-1.3 hledger-1.3 hledger-ui-1.3 hledger-web-1.3 hledger-api-1.3 megaparsec-5.3.1 brick-0.19 vty-5.15.1 data-clist-0.1.2.0 text-zipper-0.10 # GHC 7.10.3

Now you should be able to run hledger --version (and hledger-ui --version, hledger-web --version etc. if you installed those) and see the version you just installed.

C. I want to build the development version

The latest master branch includes not-yet-released features and is stable enough for daily use.

  1. Install stack and git (see notes in B above)
  2. git clone http://code.hledger.org hledger
  3. cd hledger
  4. stack install

Cabal users can use the cabal-install.sh or cabal.project files instead.

D. I want to install more commands

Additional add-on commands can be installed. Eg:
stack install hledger-iadd-1.2.1 or stack install --resolver nightly hledger-iadd.

More, experimental add-ons are included in the hledger source repo; to install these:

  1. Download the hledger source code (as in C above)
  2. In the hledger directory, run bin/compile.sh (installs dependencies & compiles for speed)
  3. Add the hledger/bin/ directory to your $PATH (as in B above)

Now you should be able to run hledger iadd --version, hledger check --help etc.