2015-11-04 05:59:12 +03:00
# Download
2015-11-10 01:10:59 +03:00
2018-10-06 22:12:55 +03:00
There are several ways to install hledger:
2018-10-06 20:57:50 +03:00
2019-01-30 00:50:44 +03:00
a. [Download the binary or system package for your platform ](#a ) (quick install, often out of date)
b. [Build the latest release with hledger-install ](#b )
or [with stack ](#b2 )
or [with cabal ](#b3 ) (slow install, up to date)
c. [Build the development version with stack or cabal ](#c ) (slow install, cutting edge)
2018-10-06 20:57:50 +03:00
2017-04-28 17:38:59 +03:00
< a name = "a" > < / a >
2017-04-13 18:42:24 +03:00
2018-10-06 22:12:55 +03:00
## a. Download a binary or system package for your platform
2014-11-05 08:18:13 +03:00
2015-07-23 17:05:28 +03:00
< style >
2018-03-10 16:10:23 +03:00
table { margin-left:1em; }
2018-10-06 22:12:55 +03:00
tr { border-top:thin solid #ddd ; border-bottom:thin solid #ddd ; }
2018-03-11 15:25:49 +03:00
div > p > strong > code { margin-left:1em; } /* top-level code lines */
2018-03-10 17:08:32 +03:00
code { white-space:nowrap; }
2015-07-23 17:05:28 +03:00
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; }
2018-03-04 17:47:43 +03:00
.warnings {
2018-10-06 20:57:50 +03:00
display:inline-block;
margin-left:1em;
2018-03-04 17:47:43 +03:00
font-style:italic;
2018-10-06 20:57:50 +03:00
font-size:small;
2018-03-04 17:47:43 +03:00
}
.warnings > a:before {
2018-10-06 20:57:50 +03:00
content: " ⚠ ";
2018-03-04 17:47:43 +03:00
color:red;
}
2015-07-23 17:05:28 +03:00
< / style >
2018-10-07 22:10:55 +03:00
< div style = "float:right; font-size:small;" >
2019-02-20 10:28:56 +03:00
*(please [update this page ](https://github.com/simonmichael/hledger/edit/master/site/download.md ),< br > report packaging issues)*
2018-10-07 22:10:55 +03:00
< / div >
2019-02-20 10:28:56 +03:00
Binaries or system packages are quickest to install, but they can be outdated or incomplete.
2018-10-06 20:57:50 +03:00
2019-02-20 10:28:56 +03:00
| | | Latest release: 1.13.2< br > [Release notes](http://hledger.org/release-notes) <!-- should be the latest release of the hledger package --> <!-- [![latest version ](https://repology.org/badge/latest-versions/hledger.svg )](http://hledger.org/release-notes) -->
|--------------------------------|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| < br > < big > **Mac**< / big > |
| [Homebrew][] | ** `brew install hledger` ** | [![Homebrew ](https://repology.org/badge/version-for-repo/homebrew/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| < br > < big > **Windows**< / big > |
| [Windows binaries][] | ** [hledger.zip ](https://ci.appveyor.com/api/buildjobs/vcocma20843lpfdo/artifacts/hledger.zip )** <!-- or [latest nightly dev build ](https://ci.appveyor.com/api/projects/simonmichael/hledger/artifacts/hledger.zip?branch=master ) --> < span class = warnings > [no hledger-ui ](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444 ),[doesn't work on old windows ?](https://github.com/simonmichael/hledger/issues/774),[many files in PATH causing hangs](https://github.com/simonmichael/hledger/issues/791)<!-- ,[appveyor builds failing](https://github.com/simonmichael/hledger/issues/832) --> </ span > | 1.12
| [Linuxbrew][] | ** `brew install hledger` ** | [![Linuxbrew ](https://repology.org/badge/version-for-repo/linuxbrew/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| < br > < big > **GNU/Linux**< / big > |
| [Linuxbrew][] | ** `brew install hledger` ** | [![Linuxbrew ](https://repology.org/badge/version-for-repo/linuxbrew/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| [Arch][] | ** `pacman -S hledger [hledger-ui] [hledger-web] [hledger-api]` ** | [![Arch ](https://repology.org/badge/version-for-repo/arch/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| [Debian][] | ** `sudo apt install hledger hledger-ui hledger-web` ** | [![Debian Oldstable ](https://repology.org/badge/version-for-repo/debian_oldstable/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Debian Stable ](https://repology.org/badge/version-for-repo/debian_stable/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Debian Testing ](https://repology.org/badge/version-for-repo/debian_testing/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Debian Unstable ](https://repology.org/badge/version-for-repo/debian_unstable/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| [Fedora][] | ** `sudo dnf install hledger` ** < br > or (more complete & current):< br > **`sudo dnf copr enable kefah/HLedger && sudo dnf install hledger`** | [![Fedora 26 ](https://repology.org/badge/version-for-repo/fedora_26/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Fedora 27 ](https://repology.org/badge/version-for-repo/fedora_27/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Fedora 28 ](https://repology.org/badge/version-for-repo/fedora_28/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Fedora 29 ](https://repology.org/badge/version-for-repo/fedora_29/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Fedora Rawhide ](https://repology.org/badge/version-for-repo/fedora_rawhide/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| [Gentoo][] | ** `sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web` ** | 1.13.2
| [Ubuntu][] | ** `sudo apt install hledger hledger-ui hledger-web` ** | [![Ubuntu 12.04 ](https://repology.org/badge/version-for-repo/ubuntu_12_04/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Ubuntu 14.04 ](https://repology.org/badge/version-for-repo/ubuntu_14_04/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Ubuntu 16.04 ](https://repology.org/badge/version-for-repo/ubuntu_16_04/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Ubuntu 17.10 ](https://repology.org/badge/version-for-repo/ubuntu_17_10/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Ubuntu 18.04 ](https://repology.org/badge/version-for-repo/ubuntu_18_04/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Ubuntu 18.10 ](https://repology.org/badge/version-for-repo/ubuntu_18_10/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![Ubuntu 19.04 ](https://repology.org/badge/version-for-repo/ubuntu_19_04/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| [Void][] | ** `xbps-install -S hledger hledger-ui hledger-web hledger-api` ** | [![Void Linux x86_64 ](https://repology.org/badge/version-for-repo/void_x86_64/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| < br > < big > **BSD**< / big > |
| OpenBSD | Ports: ** [https://github.com/jasperla/openbsd-wip/pull/104 ](https://github.com/jasperla/openbsd-wip/pull/104 )** < br > Third-party binaries: ** [OpenBSD6.3/amd64 ](https://s3.amazonaws.com/openbsd-hledger/index.html )** | 1.10
| < br > < big > **Other**< / big > |
| [Docker][] | ** `docker pull dastapov/hledger` ** ([more info](https://hub.docker.com/r/dastapov/hledger)) | 1.13.2+
| [Nix][] | ** < span style = "font-size:small;" > `nix-env -iA nixpkgs.haskellPackages.hledger nixpkgs.haskellPackages.hledger-ui nixpkgs.haskellPackages.hledger-web`</ span > ** < br >< span class = warnings > [problems with hledger-ui on Mac ?](https://github.com/simonmichael/hledger/issues/613)</ span > | [![nixpkgs stable ](https://repology.org/badge/version-for-repo/nix_stable/hledger.svg )](https://repology.org/metapackage/hledger/versions) [![nixpkgs unstable ](https://repology.org/badge/version-for-repo/nix_unstable/hledger.svg )](https://repology.org/metapackage/hledger/versions)
| [Sandstorm][] | ** [hledger-web Sandstorm app ](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90 )** < br >< span class = warnings > [features needed](https://github.com/simonmichael/hledger/issues/425)</ span > | 1.9.2
[Homebrew]: https://formulae.brew.sh/formula/hledger
[Homebrew contact]: @albins , simon@joyful.com
[Linuxbrew]: https://linuxbrew.sh
[Linuxbrew contact]: @albins , simon@joyful.com
[Windows binaries]: https://ci.appveyor.com/project/simonmichael/hledger
[Windows binaries contact]: simon@joyful.com
[Arch]: https://www.archlinux.org/packages/?sort=& q=hledger
[Arch contact]: ?
2018-10-07 22:10:55 +03:00
[Debian]: https://packages.debian.org/search?searchon=names& keywords=hledger
2019-02-20 10:28:56 +03:00
[Debian contact]: mailto:debian-haskell@lists.debian.org, Clint
2018-10-07 22:10:55 +03:00
[Fedora]: https://apps.fedoraproject.org/packages/s/hledger
2019-02-20 10:28:56 +03:00
[Fedora contact]: ?
2018-10-07 22:10:55 +03:00
[Gentoo]: https://gentoo.zugaina.org/Search?search=hledger
2019-02-20 10:28:56 +03:00
[Gentoo contact]: ?
2018-10-07 22:10:55 +03:00
[Ubuntu]: https://packages.ubuntu.com/search?suite=all& searchon=names& keywords=hledger
2019-02-20 10:28:56 +03:00
[Ubuntu contact]: ?
[Void]: https://voidlinux.org/packages/?q=hledger
[Void contact]: ?
2019-01-30 02:31:17 +03:00
[Docker]: https://hub.docker.com/search?q=hledger& type=image& sort=updated_at& order=desc
2019-02-20 10:28:56 +03:00
[Docker contact]: @adept
2018-10-08 06:02:39 +03:00
[Nix]: http://hydra.nixos.org/search?query=hledger
2019-02-20 10:28:56 +03:00
[Nix contact]: @peti
2019-01-30 02:31:01 +03:00
[Sandstorm]: https://sandstorm.io
2019-02-20 10:28:56 +03:00
[Sandstorm contact]:
2019-01-30 02:31:01 +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
2018-10-06 22:12:55 +03:00
## b. Build the latest release
2014-11-11 00:38:05 +03:00
2018-10-07 19:52:54 +03:00
Good choice! You'll get the latest features and fixes mentioned in the [release notes ](release-notes.html ),
and you'll be in a good position to give feedback and get support.
2018-03-10 17:08:32 +03:00
Below are three ways to build the latest release, in order of preference.
2018-10-08 06:02:39 +03:00
But first, some tips:
2018-10-07 19:52:54 +03:00
2018-10-08 06:02:39 +03:00
- Building all hledger tools and dependencies for the first time could
take as much as an hour, 1-2G of free memory, and 1-2G of disk
space. You can kill and restart the build without losing progress,
and future builds will be much faster.
2018-10-07 19:52:54 +03:00
2018-10-08 06:02:39 +03:00
- If you get link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"),
2018-10-07 19:52:54 +03:00
you might need to install some extra system packages and try again.
2018-10-08 06:02:39 +03:00
To find the right system package, check the list below, or do a web search for the error message
2018-10-07 19:52:54 +03:00
(and please send updates for this list):
|
|-----------------|-------------------------------------------------------------------
| CentOS: | ** `sudo yum install -y libstdc++-devel ncurses-devel zlib-devel` ** <!-- https://github.com/simonmichael/hledger/issues/715 -->
| Debian, Ubuntu: | ** `sudo apt install -y libtinfo-dev` **
| Fedora, RHEL: | ** `sudo dnf install -y gmp-devel ncurses-devel` **
2018-01-22 23:25:20 +03:00
2018-10-07 19:52:54 +03:00
- Here are some known build issues and workarounds on certain platforms:
< span class = warnings >
[arch: advice from Arch wiki ](https://wiki.archlinux.org/index.php/Haskell )\
[arch: No information found for ghc-8.4.2 ](https://github.com/commercialhaskell/stack/issues/3984 )\
<!-- [arch: some past problems ](https://github.com/simonmichael/hledger/issues/668 ) -->
[freebsd 12: no cabal file found ](https://github.com/simonmichael/hledger/issues/709 )\
[openbsd 6: exec permission denied ](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html )\
[openbsd: how to get stack ](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816 )\
[windows: hledger-ui is not available ](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444 )\
< / span >
2018-10-08 06:02:39 +03:00
- If you have trouble, please send me a copy/paste of the output,
including the commands you typed, at least up to the first error, via
[paste ](http://paste.hledger.org ) + [IRC ](http://irc.hledger.org ),
or the [issue tracker ](http://bugs.hledger.org ),
or [email ](docs.html#helpfeedback ).
2018-10-07 19:52:54 +03:00
< div style = "margin-left:1em; margin-bottom:2em;" >
2018-01-22 23:14:20 +03:00
2018-04-28 22:34:59 +03:00
< a name = "b1" > < / a >
### b1. with hledger-install
2018-01-22 23:14:20 +03:00
2018-10-07 02:16:36 +03:00
On systems with bash installed (mac, linux, unix-like windows..),
if you don't already have stack or cabal, or if you are having trouble with them,
[hledger-install ](https://github.com/simonmichael/hledger/tree/master/hledger-install )
is an easy and reliable way to get the latest hledger.
2018-10-07 19:52:54 +03:00
It automates the install process using stack or cabal, avoiding common pitfalls:
2018-02-17 15:23:15 +03:00
2018-10-07 02:16:36 +03:00
** `curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh > hledger-install.sh` **\
** `less hledger-install.sh` ** *# satisfy yourself that the script is safe* \
** `bash hledger-install.sh` **
2018-03-10 16:10:23 +03:00
2018-10-07 19:52:54 +03:00
< a name = "b2" > < / a >
2018-03-10 16:10:23 +03:00
2018-10-07 19:52:54 +03:00
### b2. with stack
2018-03-10 16:10:23 +03:00
2018-10-07 19:52:54 +03:00
[`stack` ](http://haskell-lang.org/get-started ) is the more reliable of Haskell's two build tools, for new users.
2018-10-07 20:01:33 +03:00
You need stack 1.7.1 or newer; the latest release is best.
On 64-bit Windows, use the 64-bit version of stack.
2018-10-07 19:52:54 +03:00
The following command installs the main hledger packages;
you can save some time by omitting hledger-ui, hledger-web and/or hledger-api (optional user interfaces).
On Windows, hledger-ui is not available.
To estimate the build time, add `--dry-run` :
2017-07-21 11:33:07 +03:00
2019-02-05 23:35:48 +03:00
** `stack install --resolver=lts-13 hledger-lib-1.13.1 hledger-1.13.2 hledger-ui-1.13.1 brick-0.46 text-zipper-0.10.1 config-ini-0.2.4.0 data-clist-0.1.2.2 word-wrap-0.4.1 hledger-web-1.13 hledger-api-1.13` **\
2018-03-07 21:15:55 +03:00
2018-10-07 19:52:54 +03:00
Other [add-ons ](/hledger.html#third-party-add-ons )
like
[hledger-diff ](http://hackage.haskell.org/package/hledger-diff ),
[hledger-iadd ](http://hackage.haskell.org/package/hledger-iadd ),
or [hledger-interest ](http://hackage.haskell.org/package/hledger-interest )
2018-10-08 06:02:39 +03:00
can be installed like so:
2018-03-10 17:08:32 +03:00
2019-02-03 07:25:17 +03:00
** `stack install --resolver=lts-13 hledger-lib-1.13.1 hledger-diff-0.2.0.14 hledger-iadd-1.3.8 brick-0.46 text-zipper-0.10.1 config-ini-0.2.4.0 data-clist-0.1.2.2 word-wrap-0.4.1 hledger-interest-1.5.3` **\
2018-03-10 16:10:23 +03:00
2018-10-07 19:52:54 +03:00
< a name = "b3" > < / a >
2017-07-21 11:33:07 +03:00
2018-10-07 19:52:54 +03:00
### b3. with cabal
2017-07-21 11:33:07 +03:00
2018-10-07 19:52:54 +03:00
[cabal ](https://www.haskell.org/cabal/ ) is the other Haskell build tool. If you're a cabal expert, use it in the usual way, eg:
2018-04-28 22:34:59 +03:00
2019-02-02 04:50:58 +03:00
** `cabal v2-update` **\
2019-02-05 23:35:48 +03:00
** `cabal v2-install hledger-1.13.2 hledger-ui-1.13.1 hledger-web-1.13 hledger-api-1.13 [hledger-diff-0.2.0.14 hledger-iadd-1.3.8 hledger-interest-1.5.3]` **\
2018-01-22 23:14:20 +03:00
2018-10-07 19:52:54 +03:00
< / div >
2017-07-21 11:33:07 +03:00
2018-10-07 19:52:54 +03:00
#### Set up PATH
2018-01-22 23:14:20 +03:00
2018-10-08 06:02:39 +03:00
You will probably see a message about where the executables were installed.
After installation, make sure this install directory is configured in your shell's \$PATH
(preferably near the start of it, to preempt older hledger system packages you may have installed).
2018-10-07 19:52:54 +03:00
The install directory is:
2018-03-10 16:10:23 +03:00
2018-10-07 19:52:54 +03:00
| | on non-Windows systems | on Windows
|--------------------|------------------------|------------------------------------------
| If stack was used | `$HOME/.local/bin` | `%APPDATA%\local\bin` (eg `C:\Users\Joe\AppData\Roaming\local\bin`)
| If cabal was used | `$HOME/.cabal/bin` | `%APPDATA%\cabal\bin`
2018-03-10 16:10:23 +03:00
2018-10-07 20:01:33 +03:00
How to configure \$PATH is platform- and shell-specific.
If you are using bash, this should take care of it:
2018-03-10 16:10:23 +03:00
2018-10-07 19:52:54 +03:00
** `echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc` **
2018-01-22 23:14:20 +03:00
2018-10-07 19:52:54 +03:00
\
2018-01-22 23:14:20 +03:00
2018-10-07 19:52:54 +03:00
#### Test the installation
You should now be able to run the hledger tools (whichever ones you installed) and see the expected versions:
`$` **`hledger --version`**\
2019-02-05 23:35:48 +03:00
`hledger 1.13.2` \
2018-10-07 19:52:54 +03:00
`$` **`hledger-ui --version`**\
2019-02-02 20:19:33 +03:00
`hledger-ui 1.13.1` \
2018-10-07 19:52:54 +03:00
`$` **`hledger web --version`**\
2019-02-02 04:50:58 +03:00
`hledger-web 1.13` \
2018-10-07 19:52:54 +03:00
`$` **`hledger iadd --version`**\
2019-02-02 19:26:01 +03:00
`This is hledger-iadd version 1.3.8` \
2018-10-07 19:52:54 +03:00
And you can check that the unit tests pass (just for fun):
`$` **`hledger test`**\
`...` \
2018-12-04 02:26:23 +03:00
`✅ 188 tests passed, no failures! 👍 🎉` \
2018-04-28 22:34:59 +03:00
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
2018-10-06 22:12:55 +03:00
## c. Build the development version
2016-09-13 19:00:17 +03:00
2018-03-10 16:10:23 +03:00
Also a good choice. Our master branch is stable enough for daily use,
2018-03-10 17:08:32 +03:00
and includes the [latest improvements ](https://github.com/simonmichael/hledger/commits/master ).
2018-10-07 19:52:54 +03:00
You'll need [git ](https://en.wikipedia.org/wiki/Git ) and
[`stack` ](http://haskell-lang.org/get-started ) or [cabal ](https://www.haskell.org/cabal/ ).
Eg, this will build and install all of the main hledger tools using stack:
2016-09-13 19:00:17 +03:00
2018-10-07 19:52:54 +03:00
** `git clone https://github.com/simonmichael/hledger` **\
** `cd hledger` **\
** `stack install` **\
2017-01-08 22:00:10 +03:00
2018-01-22 23:14:20 +03:00
cabal users may find the `cabal-install.sh` or `cabal.project` files useful.
2018-10-07 19:52:54 +03:00
See the troubleshooting, PATH, and test tips [above ](#b ).
2019-02-02 04:50:58 +03:00
Note development builds will have a .99 suffix (eg 1.13.99 means "1.14-dev").
2018-10-07 19:52:54 +03:00