mirror of
https://github.com/dvorka/hstr.git
synced 2024-12-26 17:33:50 +08:00
571 lines
14 KiB
Markdown
571 lines
14 KiB
Markdown
# Installation
|
|
|
|
Install:
|
|
|
|
* [Ubuntu](#ubuntu)
|
|
* [Fedora](#fedorarhelcentosscientific)
|
|
* [Gentoo](#gentoo)
|
|
* [CentOS](#fedorarhelcentosscientific)
|
|
* [openSUSE](#opensuse)
|
|
* [RHEL](#fedorarhelcentosscientific)
|
|
* [Debian](#debianmint)
|
|
* [Mint](#debianmint)
|
|
* [Alpine Linux](#alpine-linux)
|
|
* [Arch Linux](#archmanjaro-linux)
|
|
* [Milis Linux](#milis-linux)
|
|
* [Manjaro Linux](#archmanjaro-linux)
|
|
* [Scientific Linux](#fedorarhelcentosscientific)
|
|
* [Haiku OS](#haiku-os)
|
|
* [macOS](#macos)
|
|
* [nix package manager](#nix-package-manager)
|
|
* [Guix package manager](#guix-package-manager)
|
|
* [MPR package manager](#mpr-package-manager)
|
|
|
|
Build:
|
|
|
|
* [build on any Linux distro](#build-on-any-linux-distro)
|
|
* [build snap](#build-snap)
|
|
* [build on Ubuntu](#build-on-ubuntu)
|
|
* [build on Debian](#build-on-debian)
|
|
* [build on Fedora](#build-on-fedora)
|
|
* [build on Windows Subsystem for Linux (WSL)](#build-on-wsl)
|
|
* [build on Cygwin](#build-on-cygwin)
|
|
* [build on macOS](#build-on-macos)
|
|
|
|
Tarball:
|
|
|
|
* [build and install tarball](#build-and-install-tarball)
|
|
|
|
Upgrade:
|
|
|
|
* [HSTR 1.x to 2.x](#hstr-1x-to-2x-from-hh-to-hstr)
|
|
* [HSTR 2.x to 3.x](#hstr-2x-to-3x-ioctl--tiocsti)
|
|
|
|
# Install
|
|
|
|
Install HSTR using a [package](https://pkgs.org/search/?q=hstr) or repository.
|
|
|
|
## Ubuntu
|
|
|
|
HSTR is [included in Ubuntu 21.10](https://packages.ubuntu.com/search?keywords=hstr) and [newer](https://wiki.ubuntu.com/Releases) releases:
|
|
|
|
```bash
|
|
sudo apt install hstr
|
|
```
|
|
|
|
---
|
|
|
|
Install HSTR on **Ubuntu 21.04 and older** using one-liner:
|
|
|
|
```bash
|
|
sudo add-apt-repository ppa:ultradvorka/ppa && sudo apt-get update && sudo apt-get install hstr && hstr --show-configuration >> ~/.bashrc && . ~/.bashrc
|
|
```
|
|
|
|
... or step by step:
|
|
|
|
```bash
|
|
sudo add-apt-repository ppa:ultradvorka/ppa
|
|
sudo apt-get update
|
|
sudo apt-get install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Debian/Mint
|
|
|
|
HSTR is [included in Debian 11](https://packages.debian.org/bullseye/hstr) and [newer](https://www.debian.org/releases/) releases:
|
|
|
|
```bash
|
|
sudo apt install hstr
|
|
```
|
|
|
|
---
|
|
|
|
Install HSTR on **Debian 10 and older** from my PPA. Add [PPA](https://www.mindforger.com/debian),
|
|
trust [GPG key](https://www.mindforger.com/gpgpubkey.txt) and install HSTR:
|
|
|
|
```bash
|
|
# add PPA to APT sources:
|
|
sudo bash -c 'echo -e "\ndeb https://www.mindforger.com/debian stretch main" > /etc/apt/sources.list.d/mindforger.list'
|
|
|
|
# import PPA's GPG key
|
|
wget -qO - https://www.mindforger.com/gpgpubkey.txt | sudo apt-key add -
|
|
|
|
# update sources
|
|
sudo apt update
|
|
|
|
# install HSTR
|
|
sudo apt install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
---
|
|
|
|
Alternatively you can download and install `.deb` archive from [GitHub releases](https://github.com/dvorka/hstr/releases)
|
|
section of the project:
|
|
|
|
```bash
|
|
wget -O hstr.deb https://github.com/dvorka/hstr/releases/download/<major>.<minor>/hstr_<major>.<minor>.<revision>-1_amd64.deb
|
|
|
|
# dependencies:
|
|
apt-get install libncursesw5 libtinfo5
|
|
|
|
sudo dpkg -i hstr.deb
|
|
```
|
|
|
|
## Fedora/RHEL/CentOS/Scientific
|
|
|
|
Install HSTR on [Fedora](https://src.fedoraproject.org/rpms/hstr), RHEL, CentOS or Scientific Linux:
|
|
|
|
```bash
|
|
sudo dnf install hstr
|
|
```
|
|
|
|
... or:
|
|
|
|
```bash
|
|
sudo yum install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
---
|
|
|
|
If you want to make sure you have the latest version, then download `.rpm` archive from
|
|
[GitHub releases](https://github.com/dvorka/hstr/releases) or [pkgs.org](https://pkgs.org/search/?q=hstr) and install it:
|
|
|
|
```bash
|
|
sudo dnf install ./hstr-<major>.<minor>.<revision>-2.x86_64.rpm
|
|
```
|
|
|
|
## openSUSE
|
|
|
|
To install HSTR on openSUSE, please check [software.opensuse.org](https://software.opensuse.org/package/hstr) or [pkgs.org](https://pkgs.org/search/?q=hstr). You can install HSTR as follows:
|
|
|
|
```bash
|
|
zypper addrepo https://download.opensuse.org/repositories/home:/lemmy04/15.5/home:lemmy04.repo
|
|
zypper refresh
|
|
zypper install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Gentoo
|
|
|
|
To install HSTR on Gentoo run (HSTR has been added to [Portage](https://bugs.gentoo.org/show_bug.cgi?id=527122)):
|
|
|
|
```bash
|
|
emerge app-shells/hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Alpine Linux
|
|
|
|
To install HSTR on Alpine Linux run the following command as root:
|
|
|
|
```bash
|
|
apk add hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## ALT Linux
|
|
|
|
To install HSTR on ALT Linux, please check [pkgs.org](https://pkgs.org/search/?q=hstr). You can install HSTR as follows:
|
|
|
|
```bash
|
|
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/autoimports/p10 x86_64 autoimports
|
|
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/autoimports/p10 noarch autoimports
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Arch/Manjaro Linux
|
|
|
|
To install HSTR on Arch or Manjaro Linux download the latest distribution either from [pkgs.org](https://pkgs.org/search/?q=hstr) or [GitHub releases](https://github.com/dvorka/hstr/releases).
|
|
|
|
Use [PKGBUILD](https://wiki.archlinux.org/index.php/PKGBUILD) in the root of the distribution to build package using `makepkg`.
|
|
|
|
To install HSTR from the [Arch User Repository (AUR)](https://aur.archlinux.org/packages/hstr-git/) run `yaourt -S hstr-git` in command line.
|
|
|
|
## FreeBSD
|
|
|
|
To install HSTR on FreeBSD, please check [pkgs.org](https://pkgs.org/search/?q=hstr). You can install HSTR as follows:
|
|
|
|
```bash
|
|
pkg install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Slackware
|
|
|
|
To install HSTR on Slackware, please check [pkgs.org](https://pkgs.org/search/?q=hstr). You can install HSTR as follows:
|
|
|
|
```bash
|
|
upgradepkg --install-new hstr-<major>.<minor>-x86_64-1cf.txz
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Void Linux
|
|
|
|
To install HSTR on Void Linux, please check [pkgs.org](https://pkgs.org/search/?q=hstr). You can install HSTR as follows:
|
|
|
|
```bash
|
|
xbps-install -Su hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Milis Linux
|
|
|
|
To install HSTR on Milis Linux run the following commands as root:
|
|
|
|
```bash
|
|
mps kur hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Haiku OS
|
|
|
|
To install HSTR on Haiku OS use [Haiku Depot](https://www.haiku-os.org/docs/userguide/en/applications/haikudepot.html):
|
|
|
|
* https://depot.haiku-os.org/#!/?srchexpr=hstr
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## macOS
|
|
|
|
Install HSTR on macOS using [Homebrew](https://brew.sh/) ([formula](https://formulae.brew.sh/formula/hstr)):
|
|
|
|
```bash
|
|
brew install hstr
|
|
```
|
|
|
|
You can also install HSTR on macOS using [MacPorts](https://www.macports.org) ([port info](https://ports.macports.org/port/hstr/)):
|
|
|
|
```bash
|
|
sudo port install hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## nix package manager
|
|
|
|
To install HSTR using the [nix package manager](https://nixos.org/nix/) e.g. on [NixOS](https://nixos.org/) you can use the [nix derivation for HSTR](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/hstr/default.nix):
|
|
|
|
```bash
|
|
nix profile install nixpkgs#hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Guix package manager
|
|
|
|
To install HSTR in [GuixSD](https://www.gnu.org/software/guix/) or using the standalone [Guix package manager](https://www.gnu.org/software/guix/manual/en/html_node/Binary-Installation.html#Binary-Installation) you can install the `hstr` package, e.g.
|
|
|
|
```bash
|
|
guix package -i hstr
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## MPR package manager
|
|
|
|
To install HSTR in Ubuntu or derivative operating systems using MPR, you can search for `hstr-git` using helper
|
|
or install it manually using `makedeb -s`
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
[MPR package](https://mpr.hunterwittenborn.com/packages/hstr-git)
|
|
|
|
# Build
|
|
|
|
Build HSTR from source code.
|
|
|
|
## Build on any Linux distro
|
|
|
|
Clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Create build files using:
|
|
|
|
```bash
|
|
cd ./build/tarball && ./tarball-automake.sh && cd ../..
|
|
```
|
|
|
|
Build and install HSTR using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Build snap
|
|
|
|
To build [snap](https://snapcraft.io/) for HSTR first clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Make sure that you can build HSTR from source code
|
|
as described in a "Build on ..." section for your
|
|
distribution.
|
|
|
|
Install [snapcraft](https://snapcraft.io/) and build
|
|
snap by running snapcraft in the root of Git repository:
|
|
|
|
```bash
|
|
$ ls ./snap
|
|
snapcraft.yaml
|
|
$ snapcraft
|
|
...
|
|
```
|
|
|
|
Find `hstr_0+git..._amd64.snap` in the current directory.
|
|
|
|
## Build on Ubuntu
|
|
|
|
To build HSTR on Ubuntu clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo apt install automake gcc make libncursesw5-dev libreadline-dev
|
|
```
|
|
|
|
Create build files using:
|
|
|
|
```bash
|
|
cd ./build/tarball && ./tarball-automake.sh && cd ../..
|
|
```
|
|
|
|
Build and install HSTR using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Build on Debian
|
|
|
|
To build HSTR on Debian clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo apt install autotools gcc make pkgconf libncursesw5-dev libreadline-dev
|
|
```
|
|
|
|
Create build files using:
|
|
|
|
```bash
|
|
cd ./build/tarball && ./tarball-automake.sh && cd ../..
|
|
```
|
|
|
|
Build and install HSTR using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Build on Fedora
|
|
|
|
To build HSTR on Fedora clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo dnf install autotools ncurses-devel readline-devel
|
|
```
|
|
|
|
Create build files using:
|
|
|
|
```bash
|
|
cd ./build/tarball && ./tarball-automake.sh && cd ../..
|
|
```
|
|
|
|
Build and install HSTR using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Build on WSL
|
|
|
|
To build HSTR on [Windows Subsystem for Linux (WSL)](https://msdn.microsoft.com/en-us/commandline/wsl/about) clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo apt install automake gcc make libncursesw5-dev libreadline-dev
|
|
```
|
|
|
|
Create build files using:
|
|
|
|
```bash
|
|
cd ./build/tarball && ./tarball-automake.sh && cd ../..
|
|
```
|
|
|
|
Build and install `hstr` using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
It's **important** to finish installation by configuration of HSTR binding
|
|
which ensures propagation of chosen command to the prompt:
|
|
|
|
```bash
|
|
hstr --show-configuration >> ~/.bashrc
|
|
. ~/.bashrc
|
|
```
|
|
|
|
Make sure to **run** HSTR using <kbd>Ctrl-r</kbd> (or `hstrwsl`) - otherwise commands will not appear in prompt.
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Build on Cygwin
|
|
|
|
To build HSTR on [Cygwin](https://www.cygwin.com) clone Git repository:
|
|
|
|
```bash
|
|
git clone https://github.com/dvorka/hstr.git
|
|
```
|
|
|
|
Create build files using:
|
|
|
|
```bash
|
|
cd ./build/tarball && ./tarball-automake.sh && cd ../..
|
|
```
|
|
|
|
Build and install HSTR using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
It's **important** to finish installation by configuration of HSTR binding
|
|
which ensures propagation of chosen command to the prompt:
|
|
|
|
```bash
|
|
hstr --show-configuration >> ~/.bashrc
|
|
. ~/.bashrc
|
|
```
|
|
|
|
Make sure to **run** HSTR using <kbd>Ctrl-r</kbd> (or `hstrcygwin`) - otherwise commands will not appear in prompt.
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
## Build on macOS
|
|
|
|
HSTR can be built on macOS either using [MacPorts](https://www.macports.org/) or [Homebrew](https://brew.sh/).
|
|
|
|
---
|
|
|
|
To build HSTR using [MacPorts](https://www.macports.org/) install `readline` and `ncurses`:
|
|
|
|
```bash
|
|
port install readline
|
|
port install ncurses
|
|
```
|
|
|
|
Check `portfile` either on [macports.com](https://www.macports.org/ports.php?by=name&substr=hstr) or [GitHub](https://github.com/macports/macports-ports/blob/master/shells/hstr/Portfile):
|
|
|
|
```bash
|
|
autoreconf -fvi
|
|
./configure CFLAGS=-I/opt/local/include/ LDFLAGS=-L/opt/local/lib
|
|
make
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
---
|
|
|
|
To build HSTR using [Homebrew](https://brew.sh/):
|
|
|
|
```bash
|
|
autoreconf -fvi
|
|
./configure CFLAGS=-I$(brew --prefix)/opt/readline/include LDFLAGS=-L$(brew --prefix)/opt/readline/lib
|
|
make
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
# Tarball
|
|
|
|
Download and install HSTR tarball.
|
|
|
|
## Build and Install Tarball
|
|
|
|
Download latest tarball from [GitHub releases](https://github.com/dvorka/hstr/releases) section.
|
|
Expand the archive and install HSTR using:
|
|
|
|
```bash
|
|
./configure && make && make install
|
|
```
|
|
|
|
[Configure](CONFIGURATION.md) HSTR and check its [man page](README.md#documentation).
|
|
|
|
# Upgrade
|
|
|
|
HSTR major versions upgrades instructions.
|
|
|
|
## HSTR 1.x to 2.x: from HH to HSTR
|
|
|
|
Upgrade HSTR using a [package](https://pkgs.org/search/?q=hstr) or repository. If you are `HSTR 1.x` user, please read about [HSTR 2.x changes](https://github.com/dvorka/hstr/releases/tag/2.0).
|
|
|
|
## HSTR 2.x to 3.x: ioctl / TIOCSTI
|
|
|
|
`TIOCSTI` is an acronym for "Terminal Input Output Control STack Input",
|
|
and it is a system call used in Unix-like operating systems. The `TIOCSTI`
|
|
system call allows to insert data into the input buffer of a terminal
|
|
as if it had been typed by the user.
|
|
|
|
`TIOCSTI` is NOT available at:
|
|
|
|
* Linux kernel >=6.2.0
|
|
* Cygwin
|
|
* WSL
|
|
|
|
HSTR uses `TIOCSTI` to insert a command chosen by the user in HSTR
|
|
to shell prompt - if `TIOCSTI` is available. Otherwise shell specific
|
|
line editors features are used.
|
|
|
|
**Therefore it is important to configure HSTR after the installation:**
|
|
|
|
* [HSTR configuration](README.md#configuration)
|