rusty-man/INSTALL.md
Robin Krahl 8db34e33b2
Use termion backend for cursive
With this patch, we replace cursive’s default ncurses backend with the
termion backend.  This has multiple reasons:
- The ncurses backend has safety issues, see [0].
- ncurses requires a pre-installed library and a C compiler, introducing
  additional build dependencies.  Termion is implemented in Rust only.
- ncurses does not work on Windows, while termion works in all terminals
  that support ANSI escape codes.

Per default, the termion backend does not buffer the output which may
cause flickering [1].  Therefore, we also use the
cursive_buffered_backend that buffers the output and fixes the
flickering problem.

[0] https://github.com/gyscos/cursive/issues/488
[1] https://github.com/gyscos/cursive/issues/142
2020-10-08 10:30:17 +02:00

81 lines
2.0 KiB
Markdown

<!---
SPDX-FileCopyrightText: 2020 Robin Krahl <robin.krahl@ireas.org>
SPDX-License-Identifier: MIT
-->
# Installing rusty-man
## Installing a package
rusty-man packages are available for these distributions:
- Arch Linux: [`rusty-man`][pkg-aur] in the Arch User Repository
[pkg-aur]: https://aur.archlinux.org/packages/rusty-man/
## Installing from source
### Build Requirements
To compile rusty-man, you need Rust 1.40 or later.
### Installing from Git
1. Clone the rusty-man Git repository:
```
$ git clone https://git.sr.ht/~ireas/rusty-man && cd rusty-man
```
2. Optional: Checkout the latest release:
```
$ git checkout v0.3.0
```
3. Optional: Verify the signature of the latest commit:
```
$ curl -s "https://pgp.ireas.org/0x6D533958F070C57C.txt" | gpg --import
$ git verify-commit HEAD
```
4. Compile rusty-man:
```
$ cargo build --release --locked
```
5. Optional: Install the rusty-man binary:
```
$ sudo cp ./target/release/rusty-man /usr/local/bin/rusty-man
```
### Installing from a tarball
1. Download the tarball for the latest rusty-man release (see the [release
list][]) and optionally its signature:
```
$ curl "https://git.sr.ht/~ireas/rusty-man/archive/v0.3.0.tar.gz" \
--output rusty-man-v0.3.0.tar.gz
```
2. Optional: Download and verify the signature of the tarball:
```
$ curl "https://git.sr.ht/~ireas/rusty-man/refs/v0.3.0/v0.3.0.tar.gz.asc" \
--output rusty-man-v0.3.0.tar.gz.asc
$ curl -s "https://pgp.ireas.org/0x6D533958F070C57C.txt" | gpg --import
$ gpg --verify rusty-man-v0.3.0.tar.gz.asc
```
3. Extract the tarball:
```
$ tar -xf rusty-man-v0.3.0.tar.gz
$ cd rusty-man-v0.3.0
```
4. Compile rusty-man:
```
$ cargo build --release --locked
```
5. Optional: Install the rusty-man binary:
```
$ sudo cp ./target/release/rusty-man /usr/local/bin/rusty-man
```
[release list]: https://git.sr.ht/~ireas/rusty-man/refs
### Installing from crates.io
```
cargo install rusty-man
```