# 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).
2. `stack install --resolver=nightly hledger [hledger-ui] [hledger-web] [hledger-api]`\
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.
Installing with [`cabal`](https://www.haskell.org/cabal/) is similar, if you're familiar with that.
## 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 hledger commands are not built in, but included in the source as
[add-on commands](http://hledger.org/hledger.html#add-on-commands). These include:
`hledger-check-dates`.
`hledger-equity`,
`hledger-print-unique`,
`hledger-register-match`,
`hledger-rewrite`,
You can install these as follows:
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`
Now the add-on commands will appear in the commands listed by `hledger`.
(In addition, there is a `hledger-autosync` symbolic link showing how to make
the [ledger-autosync](https://gitlab.com/egh/ledger-autosync) tool available
as a hledger command, if installed.)
Other hledger commands are provided as separate packages, such as:
`hledger-diff`, `hledger-iadd`, `hledger-interest`, `hledger-irr`.
Some of these are available in Stackage and can be installed with stack as in B above, eg:
`stack install --resolver nightly hledger-interest`
Others may be available only on Hackage, in which case you should specify
the version number displayed [there](http://hackage.haskell.org/package/hledger-diff). Eg:
`stack install hledger-diff-0.2.0.7`