mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-10 05:39:31 +03:00
282 lines
18 KiB
Markdown
282 lines
18 KiB
Markdown
# Download
|
|
|
|
Here are the ways to install hledger, organised by platform, with the usually most up-to-date methods at the top.
|
|
|
|
(
|
|
hledger's usual release window is the first day or two of the month.
|
|
Please [send updates](index.html#helpfeedback) for
|
|
[this page](https://github.com/simonmichael/hledger/blob/master/site/download.md),
|
|
and help packagers keep packages up to date.
|
|
Click the version badges on the right for package/contact info.
|
|
)
|
|
|
|
<style>
|
|
table { margin-left:1em; }
|
|
tr { /*border-top:thin solid #ddd;*/ border-bottom:thin solid #ddd; }
|
|
div > p > strong > code { margin-left:1em; } /* top-level code lines */
|
|
code { white-space:nowrap; }
|
|
tr { vertical-align:top; }
|
|
td { padding-bottom:.5em; padding-right:1em; }
|
|
td:first-of-type {
|
|
/* white-space:nowrap; */
|
|
/* width:1%; */
|
|
}
|
|
a { white-space:nowrap; }
|
|
.warnings {
|
|
display:inline-block;
|
|
margin-left:1em;
|
|
font-style:italic;
|
|
font-size:small;
|
|
}
|
|
.warnings > a:before {
|
|
content: " ⚠ ";
|
|
color:red;
|
|
}
|
|
</style>
|
|
|
|
| | | Latest release is 1.14.2<br>[Release notes](release-notes.html) <!-- 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>**Multiplatform**</big> | <br><small>*The first three (and occasionally the fourth) build from source, which is slower. See [Building from source](#b).*</small> | <br><small>*This method installs:*</small>
|
|
| [hledger-install.sh](#b1)<br><small>*Linux, Mac, WSL*</small><br><small>*Requires only bash.*</small> | <span style="font-size:small;">**`curl -sO https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh`**<br>**`less hledger-install.sh`** *# satisfy yourself that the script is safe*<br>**`bash hledger-install.sh`**</span> | <small>Latest release</small>
|
|
| [cabal]<br><small>*Linux, Mac, Windows[*]*</small> | <span style="font-size:medium;">**`cabal v2-update && cabal v2-install hledger-1.14.2 hledger-web-1.14.1 hledger-ui-1.14.2`**</span> | <small>Latest release</small>
|
|
| [stack]<br><small>*Linux, Mac, Windows[*]*</small> | <span style="font-size:medium;">**`stack install --resolver=nightly-2019-03-21 hledger hledger-web hledger-ui`**</span> | <small>Latest release</small>
|
|
| [Nix]<br><small>*Linux, Mac*</small> | <span style="font-size:small;">**`nix-env -i -f https://github.com/NixOS/nixpkgs/archive/9c74e2.tar.gz -A hledger hledger-web hledger-ui`**</span> | <small>Latest release</small>
|
|
| [Docker]<br><small>*Linux, Mac, Windows*</small> | **`docker pull dastapov/hledger`** | [![](https://img.shields.io/badge/Docker_image-1.14.1-brightgreen.svg)](https://hub.docker.com/r/dastapov/hledger)<br><small>[more..](https://hub.docker.com/search?q=hledger&type=image&sort=updated_at&order=desc)</small>
|
|
| [Homebrew]<br><small>*Linux, Mac, Windows*</small> | **`brew install hledger`** | [![Homebrew](https://repology.org/badge/version-for-repo/homebrew/hledger.svg)](https://formulae.brew.sh/formula/hledger)
|
|
| <br><big>**Windows**</big> |
|
|
| Windows binaries | <code>**[hledger.zip]**</code> <small>*from Appveyor CI*</small> <!-- 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>--> | [![](https://img.shields.io/badge/Windows_binaries-1.14.1+_20190309-brightgreen.svg)](https://ci.appveyor.com/project/simonmichael/hledger/build/artifacts)
|
|
| <br><big>**GNU/Linux**</big> |
|
|
| Arch | **`pacman -S hledger hledger-ui hledger-web`** | [![Arch](https://repology.org/badge/version-for-repo/arch/hledger.svg)](https://www.archlinux.org/packages/?sort=&q=hledger)
|
|
| Gentoo | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`** | [![](https://img.shields.io/badge/Gentoo_package-1.14.1-red.svg)](https://gentoo.zugaina.org/Search?search=hledger)
|
|
| Debian | **`sudo apt install hledger hledger-ui hledger-web`** | [![Debian Unstable](https://repology.org/badge/version-for-repo/debian_unstable/hledger.svg)](https://packages.debian.org/unstable/hledger)<br>[![Debian Testing](https://repology.org/badge/version-for-repo/debian_testing/hledger.svg)](https://packages.debian.org/testing/hledger)<br>[![Debian Stable](https://repology.org/badge/version-for-repo/debian_stable/hledger.svg)](https://packages.debian.org/stable/hledger)<br>[![Debian Oldstable](https://repology.org/badge/version-for-repo/debian_oldstable/hledger.svg)](https://packages.debian.org/oldstable/hledger)<br><small>[more..](https://packages.debian.org/search?searchon=names&keywords=hledger)</small>
|
|
| Ubuntu | **`sudo apt install hledger hledger-ui hledger-web`** | [![Ubuntu 19.04](https://repology.org/badge/version-for-repo/ubuntu_19_04/hledger.svg)](https://packages.ubuntu.com/disco/hledger)<br>[![Ubuntu 18.10](https://repology.org/badge/version-for-repo/ubuntu_18_10/hledger.svg)](https://packages.ubuntu.com/cosmic/hledger)<br>[![Ubuntu 18.04](https://repology.org/badge/version-for-repo/ubuntu_18_04/hledger.svg)](https://packages.ubuntu.com/bionic/hledger)<br>[![Ubuntu 16.04](https://repology.org/badge/version-for-repo/ubuntu_16_04/hledger.svg)](https://packages.ubuntu.com/xenial/hledger)<br>[![Ubuntu 14.04](https://repology.org/badge/version-for-repo/ubuntu_14_04/hledger.svg)](https://packages.ubuntu.com/trusty/hledger)<br><small>[more..](https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=hledger)</small>
|
|
| Fedora | **`sudo dnf install hledger`** | [![Fedora Rawhide](https://img.shields.io/badge/Fedora_Rawhide_package-1.10-red.svg)](https://apps.fedoraproject.org/packages/hledger/)<br>[![Fedora 30](https://img.shields.io/badge/Fedora_30_package-1.5-red.svg)](https://apps.fedoraproject.org/packages/hledger/)<br>[![Fedora 29](https://repology.org/badge/version-for-repo/fedora_29/hledger.svg)](https://apps.fedoraproject.org/packages/hledger/)<br>[![Fedora 28](https://repology.org/badge/version-for-repo/fedora_28/hledger.svg)](https://apps.fedoraproject.org/packages/hledger/)<br>[![Fedora 27](https://repology.org/badge/version-for-repo/fedora_27/hledger.svg)](https://apps.fedoraproject.org/packages/hledger/)<br><small>[more..](https://apps.fedoraproject.org/packages/s/hledger)</small>
|
|
| Void | **`xbps-install -S hledger hledger-ui hledger-web`** | [![Void Linux x86_64](https://repology.org/badge/version-for-repo/void_x86_64/hledger.svg)](https://voidlinux.org/packages/?q=hledger)
|
|
| <br><big>**BSD**</big> |
|
|
| [OpenBSD WIP](https://github.com/jasperla/openbsd-wip#how-to-use-this-tree) | **`make -C /usr/ports/openbsd-wip/productivity/hledger install`** | [![openbsd-wip port](https://img.shields.io/badge/openbsd--wip_port-1.10-red.svg)](https://github.com/jasperla/openbsd-wip/tree/master/productivity/hledger)<br><small>[more..](https://github.com/jasperla/openbsd-wip/tree/master/productivity)</small>
|
|
| <br><big>**Other**</big> |
|
|
| [Sandstorm]<br><small>*Community/private cloud platform*</small> | **[HLedger Web app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)** <!-- <br><span class=warnings>[features needed](https://github.com/simonmichael/hledger/issues/425)</span> --> | ![](https://img.shields.io/badge/Sandstorm_app-1.9.1-red.svg)
|
|
|
|
<!-- <br><br><small>*Or: (nix-channel --update may be needed. CI [build][nix unstable linux builds] [issues][nix unstable mac builds] may cause failure/large downloads; check those links/try with --dry-run first)*</small> <br><span style="font-size:small;">**`nix-env -i hledger-1.14.2 hledger-ui-1.14.2 hledger-web-1.14.1`**</span> -->
|
|
|
|
[*]: #windows-build-issues
|
|
[Docker]: https://www.docker.com/products/docker-desktop
|
|
[Homebrew]: https://brew.sh
|
|
[Linuxbrew]: https://linuxbrew.sh
|
|
[Nix]: https://nixos.org/nix
|
|
[Sandstorm]: https://sandstorm.io
|
|
[cabal]: https://www.haskell.org/cabal
|
|
[hledger.zip]: https://ci.appveyor.com/api/buildjobs/gudfa3gv7pj94ab0/artifacts/hledger.zip
|
|
[stack]: https://haskell.fpcomplete.com/get-started
|
|
|
|
[notes]::
|
|
|
|
[debian contact]: debian-haskell@lists.debian.org (& Clint)
|
|
[docker contact]: @adept
|
|
[homebrew/linuxbrew contact]: @albins, @simonmichael
|
|
[nix contact]: @peti
|
|
[sandstorm contact]: @ocdtrekkie, @AaronM04, @ndarilek
|
|
[stack/cabal contact]: @simonmichael
|
|
[windows binaries contact]: @simonmichael
|
|
|
|
[nix install variations]::
|
|
[nix-env -i hledger hledger-ui hledger-web]::
|
|
[nix-env -i hledger-1.14.1 hledger-ui-1.14 hledger-web-1.14]::
|
|
[nix-env -i -f '<nixpkgs>' -A hledger hledger-ui hledger-web]::
|
|
[fetches latest unstable]::
|
|
[nix-env -i -f channel:nixos-unstable -A hledger hledger-ui hledger-web]::
|
|
[pinned version]::
|
|
[nix-env -i -f https://github.com/NixOS/nixpkgs/archive/9c74e2.tar.gz -A hledger hledger-ui hledger-web]::
|
|
|
|
[nixpkgs]: https://hydra.nixos.org/project/nixpkgs
|
|
[nix changes]: https://github.com/NixOS/nixpkgs/search?o=desc&q=hledger&s=committer-date&type=Commits
|
|
[nix mentions]: https://search.nix.gsc.io/?q=hledger
|
|
[nix hydra jobs]: http://hydra.nixos.org/search?query=hledger
|
|
[nix stable mac jobs]: https://hydra.nixos.org/jobset/nixpkgs/nixpkgs-19.03-darwin#tabs-jobs -> hledger.
|
|
[nix unstable jobs]: https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs -> hledger.
|
|
[nix unstable linux builds]: https://hydra.nixos.org/job/nixpkgs/trunk/hledger.x86_64-linux
|
|
[nix unstable mac builds]: https://hydra.nixos.org/job/nixpkgs/trunk/hledger.x86_64-darwin
|
|
|
|
[repology badges, sometimes out of date]: https://repology.org/project/hledger/badges
|
|
[custom badges]: https://shields.io
|
|
|
|
|
|
<a name="b"></a>
|
|
|
|
## Building from source
|
|
|
|
Building hledger from source takes a bit longer than using a prebuilt package,
|
|
but you can be sure of getting the latest release (or the latest dev version).
|
|
|
|
Below are three ways to build hledger. But first, some general tips:
|
|
|
|
- Building Haskell programs involves downloading and building and
|
|
optimising a lot of dependencies. If you haven't built Haskell
|
|
software before, your first hledger build could take up to an
|
|
hour, 1-2G of free memory, and 1-2G of disk.
|
|
|
|
- Future builds will be much faster.
|
|
|
|
- You can kill a build and restart it later without losing progress.
|
|
|
|
- If you get link errors (eg: "/bin/ld.gold: error: cannot find -ltinfo"),
|
|
you might need to install some extra system packages
|
|
(C packages provided by your platform - not haskell packages)
|
|
and try again. To find the right system package, check the list
|
|
below, or do a web search for the error message (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`**
|
|
|
|
- <a name="build-issues"></a><a name="windows-build-issues"></a>Here are some known build issues and workarounds on certain platforms:
|
|
|
|
<span class=warnings>
|
|
[windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\
|
|
[windows: build hangs using GHC 8.6.3](https://github.com/well-typed/generics-sop/issues/93)\
|
|
[windows: cross-environment non-ascii display issues](https://github.com/simonmichael/hledger/issues/961#issuecomment-471229644)\
|
|
[arch: haskell build 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)\
|
|
</span>
|
|
|
|
- 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](index.html#helpfeedback).
|
|
|
|
|
|
<a name="b1"></a>
|
|
|
|
### Building with hledger-install.sh
|
|
|
|
If you don't already have stack or cabal, or if you are having trouble with them,
|
|
[hledger-install.sh](https://github.com/simonmichael/hledger/tree/master/hledger-install)
|
|
is an easy and reliable way to get the latest hledger,
|
|
on systems which have the bash shell (and are supported by GHC: mac, linux, unix-like environments on windows..).
|
|
It automates the installation of stack or cabal and then building the hledger tools, avoiding common pitfalls.
|
|
Here's how to run it (or, some folks will prefer to pipe it directly into bash):
|
|
|
|
**`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`**
|
|
|
|
<a name="b2"></a>
|
|
|
|
### Building with stack
|
|
|
|
[`stack`](http://haskell-lang.org/get-started) is the more reliable of Haskell's two build tools for new users.
|
|
You need stack 1.7.1 or newer; the latest release (eg 1.9.3) is the most reliable.
|
|
You can often run `stack upgrade` to upgrade it.
|
|
64-bit Windows users should choose the 64-bit version of stack.
|
|
The following command installs the main hledger packages;
|
|
|
|
**`stack install --resolver=nightly-2019-03-21 hledger hledger-web hledger-ui`**\
|
|
<!--
|
|
**`hledger-ui-1.14.2 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`**\
|
|
-->
|
|
|
|
If needed, you can save some time by omitting the
|
|
[hledger-web](http://hackage.haskell.org/package/hledger-web) and
|
|
[hledger-ui](http://hackage.haskell.org/package/hledger-ui) packages
|
|
(and hledger-ui's extra dependencies: brick, text-zipper, config-ini etc.)
|
|
On Windows, hledger-ui is not available.
|
|
To estimate the build time remaining, add `--dry-run`.
|
|
|
|
Some other [add-on tools](/hledger.html#third-party-add-ons) like
|
|
[hledger-api](http://hackage.haskell.org/package/hledger-api),
|
|
[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd),
|
|
and [hledger-interest](http://hackage.haskell.org/package/hledger-interest)
|
|
can be installed like so:
|
|
|
|
**`stack install --resolver=nightly-2019-03-21 hledger-api hledger-interest hledger-iadd`**\
|
|
<!--
|
|
**`hledger-interest-1.5.3 hledger-iadd-1.3.9 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`**\
|
|
-->
|
|
|
|
<a name="b3"></a>
|
|
|
|
### Building with cabal
|
|
|
|
[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:
|
|
|
|
**`cabal v2-update`**\
|
|
**`cabal v2-install hledger-1.14.2 hledger-ui-1.14.2 hledger-web-1.14.1 hledger-api-1.14 \`**\
|
|
**`hledger-iadd-1.3.9 hledger-interest-1.5.3`**\
|
|
|
|
### Set up PATH
|
|
|
|
After building you may 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).
|
|
The install directory is:
|
|
|
|
| | 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`
|
|
|
|
How to configure \$PATH is platform- and shell-specific.
|
|
If you are using bash, this should take care of it:
|
|
|
|
**`echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc`**
|
|
|
|
### Test the installation
|
|
|
|
You should now be able to run the hledger tools (whichever ones you installed) and see the expected versions:
|
|
|
|
`$`**`hledger --version`**\
|
|
`hledger 1.14.2`\
|
|
`$`**`hledger-ui --version`**\
|
|
`hledger-ui 1.14.2`\
|
|
`$`**`hledger web --version`**\
|
|
`hledger-web 1.14.1`\
|
|
`$`**`hledger iadd --version`**\
|
|
`This is hledger-iadd version 1.3.9`\
|
|
|
|
And you can check that the unit tests pass (just for fun):
|
|
|
|
`$`**`hledger test`**\
|
|
`...`\
|
|
`✅ 198 tests passed, no failures! 👍 🎉`\
|
|
|
|
<a name="c"></a>
|
|
|
|
### Building the development version
|
|
|
|
The master branch in hledger's git repo is stable enough for daily use,
|
|
and includes the [latest improvements](https://github.com/simonmichael/hledger/commits/master).
|
|
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/).
|
|
This will build and install all of the main hledger tools using stack:
|
|
|
|
**`git clone https://github.com/simonmichael/hledger`**\
|
|
**`cd hledger`**\
|
|
**`stack install`**\
|
|
|
|
cabal users may find the `cabal-install.sh` or `cabal.project` files useful.
|
|
|
|
The --version output of development builds has a .99 suffix meaning "dev".
|
|
So 1.14.99 means "1.15-dev", the in-development version of 1.15.
|
|
|
|
### Building the development version with docker
|
|
|
|
You can also build development version in the docker container, which will take care of pulling
|
|
all the necessary tools and dependencies:
|
|
|
|
**`git clone https://github.com/simonmichael/hledger`**\
|
|
**`cd hledger/docker`**\
|
|
**`./build.sh`**\
|
|
|
|
This will build image tagged `hledger` with just the latest binaries inside.
|
|
|
|
If you want to keep all the build artifacts and use the resulting image for hledger development, use
|
|
`build-dev.sh` instead.
|