# Download ## 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. (Packagers welcome!) | |---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | **Windows:** | Download and run the [latest development builds](developer-guide.html) (-> Appveyor CI) | **Mac:** | `brew install 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` | **NixOS:** | `nix-env -iA nixpkgs.haskellPackages.hledger \`
  `nixpkgs.haskellPackages.hledger-ui \`
  `nixpkgs.haskellPackages.hledger-web` | **Sandstorm:** | [hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90) -> demo
(your own fully-functional private/public hledger-web instance in 3 clicks) ## B. I want to build the latest release The latest release (see [release notes](release-notes.html)) is a good choice. You have to build it, but that's pretty easy. 1. Install [`stack`](http://haskell-lang.org/get-started). On Windows, the 64-bit version is [recommended](https://github.com/simonmichael/hledger/issues/275#issuecomment-123834252). On Arch, you [may need to also install GHC manually](https://github.com/simonmichael/hledger/issues/434).\ (If you're a [`cabal`](https://www.haskell.org/cabal/) expert, feel free to use that instead, adapting these instructions appropriately.) 2. `stack install --resolver=nightly hledger [hledger-ui] [hledger-web] [hledger-api]`\ Note you don't type the square brackets; they mean "this bit is optional". So eg if you don't care about the web tools, you would type `stack install --resolver=nightly hledger hledger-ui`\ On Windows, hledger-ui is [not yet available](https://github.com/coreyoconnor/vty/pull/1).\ If stack says you need to run `stack setup`, do that first.\ Warnings about "No packages found in snapshot which provide a "hsc2hs" executable" can be ignored.\ If required C libraries (like curses) are not installed, you might need to install those manually and try again, eg: | |--------------------|----------------------------------- | **Debian, Ubuntu:** | `sudo apt install libncurses5-dev` | **Fedora, RHEL:** | `sudo dnf install ncurses-devel` 3. If stack warns that `~/.local/bin` (or the Windows equivalent) is not in `$PATH`, fix that. Eg if you're a bash user:\ `echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc && source ~/.bashrc`\ Now you can run `hledger --version`, `hledger-ui --version` etc. ## C. I want to build the development version The [dev version](https://github.com/simonmichael/hledger/commits/master) includes not-yet-released features and is stable enough for daily use. 1. Install [`stack`](http://haskell-lang.org/get-started) (see above) and [git](https://en.wikipedia.org/wiki/Git) 2. `git clone http://code.hledger.org hledger` 3. `cd hledger` 4. `stack install`\ with the same caveats as mentioned above: - if stack says you need to run `stack setup`, do that first, - if building fails due to missing C libs, install those first - if stack warns that `~/.local/bin` (or the Windows equivalent) is not in `$PATH`, fix that - warnings about "No packages found in snapshot which provide a hsc2hs executable" can be ignored Cabal users can use the `cabal-install.sh` or `cabal.project` files instead. ## D. I want to install all add-on commands Some experimental commands are not built in to hledger, but [included in the source](https://github.com/simonmichael/hledger/tree/master/bin) as [add-on commands](http://hledger.org/hledger.html#add-on-commands), such as:\ `chart`, `check-dates`, `dupes`, `equity`, `print-unique`, `register-match`, `rewrite`. To install these and make them available in hledger's commands list: 1. Install [`stack`](http://haskell-lang.org/get-started) and [git](https://en.wikipedia.org/wiki/Git) (see above) 2. `git clone http://code.hledger.org hledger` (as above) 3. `cd hledger` 4. `bin/compile.sh` (optional, makes them start faster) 5. add the hledger `bin/` directory to your `$PATH` There is also a `hledger-autosync` symbolic link showing how to make the [ledger-autosync](https://gitlab.com/egh/ledger-autosync) tool available as a hledger command. Other commands are published as separate packages:\ `hledger-diff`, `hledger-iadd`, `hledger-interest`, `hledger-irr`. Some are available in Stackage and can be installed with stack as in B above: `stack install --resolver nightly hledger-iadd hledger-interest` Others are available only on Hackage, so you must specify the Hackage version number. Eg: `stack install hledger-diff-0.2.0.7 hledger-irr-0.1.1.10`