site: download: latest refinements, cleanups

[ci skip]
This commit is contained in:
Simon Michael 2017-04-02 11:10:58 -07:00
parent d9488ea01b
commit 1b3c04e348

View File

@ -25,14 +25,14 @@ 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!) 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) | Windows: | see B below <!-- Download and run the [latest development builds](developer-guide.html) (-> Appveyor CI) -->
| **Mac:** | `brew install hledger` | Mac: | **`brew install hledger`**
| **Debian,&nbsp;Ubuntu:** | `sudo apt install hledger hledger-ui hledger-web` | Debian,&nbsp;Ubuntu: | **`sudo apt install hledger hledger-ui hledger-web`**
| **Fedora,&nbsp;RHEL:** | `sudo dnf install hledger` | Fedora,&nbsp;RHEL: | **`sudo dnf install hledger`**
| **Gentoo:** | `sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web` | Gentoo: | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`**
| **NixOS:** | `nix-env -iA nixpkgs.haskellPackages.hledger \`<br>&nbsp;&nbsp;`nixpkgs.haskellPackages.hledger-ui \`<br>&nbsp;&nbsp;`nixpkgs.haskellPackages.hledger-web` | NixOS: | **`nix-env -iA nixpkgs.haskellPackages.hledger \`<br>&nbsp;&nbsp;`nixpkgs.haskellPackages.hledger-ui \`<br>&nbsp;&nbsp;`nixpkgs.haskellPackages.hledger-web`**
| **Sandstorm:** | [hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90) -> demo<br>(your own fully-functional private/public hledger-web instance in 3 clicks) | Sandstorm: | **[hledger-web Sandstorm app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90) -> demo**<br>(get your own private or public hledger-web instance in 3 clicks)
<a name="b"></a> <a name="b"></a>
@ -40,31 +40,43 @@ latest release, or provide only some of the hledger tools. (Packagers welcome!)
## B. I want to build the latest release ## B. I want to build the latest release
The latest release (see [release notes](release-notes.html)) is a good choice. The latest release (see [release notes](release-notes.html)) is a good choice.
You have to build it, but that's pretty easy. You have to build it, but normally that should be quite easy:
1. Install [`stack`](http://haskell-lang.org/get-started). 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). Note some packaged versions of stack are too old and will give ["Invalid package ID"](https://github.com/simonmichael/hledger/issues/513) in step 2
(and their builtin "upgrade" command will be slow); in this case consider downloading the binary instead.\
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).\ On Arch, you [may need to also install GHC manually](https://github.com/simonmichael/hledger/issues/434).\
<small>(If you're a [`cabal`](https://www.haskell.org/cabal/) expert, feel free to use that instead, adapting these instructions appropriately.)</small> You should also add [~/.local/bin (or Windows equivalent)](https://docs.haskellstack.org/en/stable/install_and_upgrade/#path)
to your \$PATH so that you can easily run stack-installed tools.
Eg if you're a bash user:\
`echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc && source ~/.bashrc`
2. **`stack install hledger-lib-1.2 hledger-1.2 [hledger-ui-1.2] [hledger-web-1.2] [hledger-api-1.2]`**\
2. `stack install --resolver=nightly hledger [hledger-ui] [hledger-web] [hledger-api]`\ Note specifying the version as above forces stack to select exactly this version,
Note you don't type the square brackets; they mean "this bit is optional". which is sometimes necessary just after a release;
So eg if you don't care about the web tools, you would type `stack install --resolver=nightly hledger hledger-ui`\ at other times the following command may be preferable
On Windows, hledger-ui is [not yet available](https://github.com/coreyoconnor/vty/pull/1).\ [to](https://www.stackage.org/package/hledger-lib)
[get](https://www.stackage.org/package/hledger)
[any](https://www.stackage.org/package/hledger-ui)
[newer](https://www.stackage.org/package/hledger-web)
[versions](https://www.stackage.org/package/hledger-api):\
`stack install --resolver=nightly hledger [hledger-ui] [hledger-web] [hledger-api]`\
If stack says you need to run `stack setup`, do that first.\ 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.\ Don't type the square brackets; they mean that hledger-ui etc. are optional.\
If required C libraries (like curses) are not installed, you might need to install those manually and try again, eg: On Windows, hledger-ui is [not yet available](https://github.com/coreyoconnor/vty/pull/1).\
If required C libraries (like curses or terminfo) are not installed, you might need to install those manually and try again.
Eg:
| |
|--------------------|----------------------------------- |-----------------|-----------------------------------
| **Debian, Ubuntu:** | `sudo apt install libncurses5-dev` | Debian, Ubuntu: | `sudo apt install libncurses5-dev`
| **Fedora, RHEL:** | `sudo dnf install ncurses-devel` | Fedora, RHEL: | `sudo dnf install ncurses-devel`
If you're a [`cabal`](https://www.haskell.org/cabal/) expert, feel free to use that instead of stack, adapting these instructions appropriately.
Now you should be able to run `hledger --version`, `hledger-ui --version` etc.
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.
<!--(The exact steps depend on your OS, cabal version and expertise.)--> <!--(The exact steps depend on your OS, cabal version and expertise.)-->
<!-- <!--
@ -96,16 +108,11 @@ If you're brand new to cabal, these steps should work on unix-like systems
The [dev version](https://github.com/simonmichael/hledger/commits/master) includes not-yet-released features and is stable enough for daily use. 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) 1. **Install [`stack`](http://haskell-lang.org/get-started) and [git](https://en.wikipedia.org/wiki/Git)**
2. `git clone http://code.hledger.org hledger` (see notes in B above)
3. `cd hledger` 2. **`git clone http://code.hledger.org hledger`**
4. `stack install`\ 3. **`cd hledger`**
with the same caveats as mentioned above: 4. **`stack install`**
- 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. Cabal users can use the `cabal-install.sh` or `cabal.project` files instead.
@ -114,39 +121,18 @@ Cabal users can use the `cabal-install.sh` or `cabal.project` files instead.
## D. I want to install all add-on commands ## D. I want to install all add-on commands
Some experimental commands are not built in to hledger, but Additional [add-on commands](http://hledger.org/hledger.html#add-on-commands) can be installed with stack
[included in the source](https://github.com/simonmichael/hledger/tree/master/bin) as (hledger-diff,
[add-on commands](http://hledger.org/hledger.html#add-on-commands), such as:\ hledger-iadd,
`chart`, hledger-interest,
`check-dates`, hledger-irr), as in B above.
`check-dupes`, Eg: `stack install hledger-iadd-1.2.1` or `stack install --resolver nightly hledger-iadd`.
`equity`,
`print-unique`,
`register-match`,
`rewrite`.
To install these and make them available in hledger's commands list: Others, more experimental, are [included](https://github.com/simonmichael/hledger/tree/master/bin)
in the hledger source repo; to install these:
1. Install [`stack`](http://haskell-lang.org/get-started) and [git](https://en.wikipedia.org/wiki/Git) (see above) 1. **Download the hledger source code** (as in C above)
2. `git clone http://code.hledger.org hledger` (as above) 2. **In the hledger directory, run `bin/compile.sh`** (installs dependencies, compiles for speed)
3. `cd hledger` 3. **Add the `hledger/bin/` directory to your `$PATH`** (as in B above)
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 Now you should be able to run `hledger iadd --version`, `hledger check --help` etc.
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`