2015-11-04 05:59:12 +03:00
# Download
2015-11-10 01:10:59 +03:00
2017-04-13 18:42:24 +03:00
Choose a method:
2017-04-28 17:38:59 +03:00
< a name = "a" > < / a >
2017-04-13 18:42:24 +03:00
2016-09-15 03:20:07 +03:00
## A. I want to download a packaged version
2014-11-05 08:18:13 +03:00
2015-07-23 17:05:28 +03:00
< style >
tr { vertical-align:top; }
2016-02-21 23:39:32 +03:00
td { padding-bottom:.5em; padding-right:1em; }
2016-09-13 22:08:37 +03:00
td:first-of-type {
/* white-space:nowrap; */
/* width:1%; */
}
a { white-space:nowrap; }
2015-07-23 17:05:28 +03:00
< / style >
2017-07-21 11:33:07 +03:00
Packaged versions are the quickest to install,
but they can be out of date or incomplete.
2014-11-11 00:38:05 +03:00
2016-10-30 16:38:33 +03:00
|
2017-04-02 21:10:58 +03:00
|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2017-07-12 08:53:50 +03:00
| Windows: | [Latest developer builds ](https://ci.appveyor.com/project/simonmichael/hledger/build/artifacts ) (no hledger-ui, [please help ](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444 ))
2017-07-11 07:48:53 +03:00
| Mac: | ** `brew install hledger` ** (CLI only, [please help ](https://github.com/simonmichael/hledger/issues/321#issuecomment-179920520 ))
2017-07-16 07:06:36 +03:00
| Arch Linux: | ** `pacman -S hledger` **
2017-07-11 07:48:53 +03:00
| Debian, Ubuntu: | ** `sudo apt install hledger hledger-ui hledger-web` **
2017-04-02 21:10:58 +03:00
| Fedora, RHEL: | ** `sudo dnf install hledger` **
| Gentoo: | ** `sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web` **
2017-04-06 18:24:45 +03:00
| Void Linux: | ** `xbps-install -S hledger hledger-ui hledger-web hledger-api` **
2017-09-27 16:34:05 +03:00
| NixOS: | ** `nix-env -iA nixpkgs.haskellPackages.hledger \` < br > `nixpkgs.haskellPackages.hledger-ui \`< br > `nixpkgs.haskellPackages.hledger-web`** (problems building hledger-ui on MacOS, [please help ](https://github.com/simonmichael/hledger/issues/613 ))
2017-07-11 08:27:40 +03:00
| Sandstorm: | ** [hledger-web Sandstorm app ](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90 ) -> demo** (get a hledger-web server in 3 clicks. Features needed, [please help ](https://github.com/simonmichael/hledger/issues/425 ))
2014-11-13 05:02:40 +03:00
2016-10-30 17:10:35 +03:00
2016-10-30 16:38:33 +03:00
< a name = "b" > < / a >
2015-11-10 01:10:59 +03:00
2016-10-30 16:38:33 +03:00
## B. I want to build the latest release
2014-11-11 00:38:05 +03:00
2017-01-08 22:00:10 +03:00
The latest release (see [release notes ](release-notes.html )) is a good choice.
2015-07-22 23:58:10 +03:00
2017-07-21 11:33:07 +03:00
On POSIX systems (mac/linux/freebsd..), use our new hassle-free installer
to get the current release of hledger and related tools.
Here's the more secure way:
2017-10-11 01:34:10 +03:00
** `curl -O https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh` **\
** `less hledger-install.sh` ** *# (do security review)* \
2017-07-21 11:33:07 +03:00
** `bash hledger-install.sh` ** *# (add `-v` for more detail; use `bash -x` to show commands being run)*
and here's the less secure, more convenient way:
2017-10-11 01:12:05 +03:00
** `curl https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh | bash` **
2017-07-21 11:33:07 +03:00
Note this could take significant time (minutes to hours), memory (~2G),
and disk space (up to a gigabyte) depending on your connection,
machine and past cabal/stack installations. You can kill and rerun it without losing progress.
2017-08-10 15:38:20 +03:00
If the installer fails, please help improve it by [reporting ](docs.html#helpfeedback ) the full output.
2017-07-21 11:33:07 +03:00
Or, you can install manually (all systems):
1. **Install [haskell `stack`](http://haskell-lang.org/get-started)** \
2017-05-23 01:45:44 +03:00
\
2017-07-21 11:33:07 +03:00
Avoid using versions older than 1.0, which give ["Invalid package ID" errors ](https://github.com/simonmichael/hledger/issues/513 );
2017-07-13 10:45:09 +03:00
latest version is good.\
2017-04-02 21:10:58 +03:00
On Windows, the 64-bit version is [recommended ](https://github.com/simonmichael/hledger/issues/275#issuecomment-123834252 ).\
2017-01-08 22:12:18 +03:00
On Arch, you [may need to also install GHC manually ](https://github.com/simonmichael/hledger/issues/434 ).\
2017-07-13 10:45:09 +03:00
Ensure [`~/.local/bin` (or Windows equivalent) is added to your \$PATH ](https://docs.haskellstack.org/en/stable/install_and_upgrade/#path ).
2017-04-02 21:10:58 +03:00
Eg if you're a bash user:\
2017-07-13 10:45:09 +03:00
`echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc & & source ~/.bashrc`
2017-04-02 21:10:58 +03:00
2017-10-01 05:41:06 +03:00
2. ** `stack install --install-ghc --resolver lts-9 hledger-lib-1.4 hledger-1.4 [hledger-ui-1.4] [hledger-web-1.4] [hledger-api-1.4]` **\
2017-05-23 01:45:44 +03:00
\
2017-07-21 11:33:07 +03:00
This command installs the specified hledger packages (and required haskell libraries and tools) from [Stackage ](https://www.stackage.org ) (and if needed, [Hackage ](http://hackage.haskell.org )).
As noted above, it can take a while.
2017-05-23 01:45:44 +03:00
You can add `--dry-run` to see what it plans to do, and kill/restart it without losing progress.\
2017-07-15 12:05:31 +03:00
You can omit the bracketed packages to save time, and maybe install them later. If you include them, don't type the brackets.
hledger-ui is [not yet available on Windows ](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444 ).\
2017-07-21 11:33:07 +03:00
If it gives "Invalid package ID" errors, get a newer version of stack.\
2017-07-13 10:45:09 +03:00
If you're a [cabal ](https://www.haskell.org/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:
2016-09-13 19:00:17 +03:00
2016-10-30 16:38:33 +03:00
|
2017-04-02 21:10:58 +03:00
|-----------------|-----------------------------------
| Debian, Ubuntu: | `sudo apt install libncurses5-dev`
| Fedora, RHEL: | `sudo dnf install ncurses-devel`
2016-09-13 19:00:17 +03:00
2017-10-01 05:38:42 +03:00
<!--
2017-07-13 11:21:16 +03:00
If you need to build with an older GHC version for some reason, these commands should work
2017-07-15 12:05:31 +03:00
(except on Mac Sierra which [requires at least GHC 8.0.2/lts-8 ](https://ghc.haskell.org/trac/ghc/ticket/12479 )):\
2017-07-21 11:33:07 +03:00
`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)* \
2017-10-01 05:38:42 +03:00
-->
2017-07-16 09:24:03 +03:00
<!-- keep synced with stack.yaml files -->
2017-07-13 11:21:16 +03:00
2017-07-16 09:24:03 +03:00
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.
2016-09-13 19:00:17 +03:00
2015-07-14 07:56:39 +03:00
2016-10-30 16:38:33 +03:00
< a name = "c" > < / a >
2016-09-13 19:00:17 +03:00
2016-10-31 20:48:20 +03:00
## C. I want to build the development version
2016-09-13 19:00:17 +03:00
2017-07-11 07:53:29 +03:00
The latest [master branch ](https://github.com/simonmichael/hledger/commits/master ) includes not-yet-released features and is stable enough for daily use.
2016-09-13 19:00:17 +03:00
2017-04-02 21:10:58 +03:00
1. **Install [`stack`](http://haskell-lang.org/get-started) and [git](https://en.wikipedia.org/wiki/Git)**
(see notes in B above)
2. ** `git clone http://code.hledger.org hledger` **
3. ** `cd hledger` **
4. ** `stack install` **
2016-10-30 17:10:35 +03:00
2016-10-30 20:29:22 +03:00
Cabal users can use the `cabal-install.sh` or `cabal.project` files instead.
2016-09-13 19:00:17 +03:00
2017-12-15 00:18:04 +03:00
Nix users taking advantage of Stack integration may need to use Stack's `--no-nix-pure` flag to build hledger.
2016-09-13 19:00:17 +03:00
2017-01-08 22:00:10 +03:00
< a name = "d" > < / a >
2016-02-21 03:59:56 +03:00
2017-04-02 21:43:55 +03:00
## D. I want to install more commands
2017-01-08 22:00:10 +03:00
2017-04-03 02:13:32 +03:00
Additional [add-on commands ](/hledger.html#third-party-add-ons )
can be installed. Eg:\
2017-04-02 21:43:55 +03:00
`stack install hledger-iadd-1.2.1` or `stack install --resolver nightly hledger-iadd` .
2017-01-08 22:00:10 +03:00
2017-04-03 02:13:32 +03:00
More, [experimental add-ons ](/hledger.html#experimental-add-ons ) are
included in the hledger source repo; to install these:
2017-01-08 22:00:10 +03:00
2017-04-02 21:10:58 +03:00
1. **Download the hledger source code** (as in C above)
2017-04-02 21:43:55 +03:00
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)
2017-01-08 22:00:10 +03:00
2017-04-02 21:10:58 +03:00
Now you should be able to run `hledger iadd --version` , `hledger check --help` etc.