kanidm/book/src/installing_client_tools.md

167 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Installing Client Tools
> [!NOTE]
>
> Running different release versions will likely present incompatibilities. Ensure you're running
> matching release versions of client and server binaries. If you have any issues, check that you
> are running the latest version of Kanidm.
## From packages
Kanidm currently is packaged for the following systems:
- OpenSUSE Tumbleweed
- OpenSUSE Leap 15.4/15.5/15.6
- macOS
- Arch Linux
- CentOS Stream 9
- Debian
- Fedora 38
- NixOS
- Ubuntu
- Alpine Linux
The `kanidm` client has been built and tested from Windows, but is not (yet) packaged routinely.
### OpenSUSE Tumbleweed / Leap 15.6
Kanidm is available in Tumbleweed and Leap 15.6. You can install the clients with:
```bash
zypper ref
zypper in kanidm-clients
```
### OpenSUSE Leap 15.4/15.5
Using zypper you can add the Kanidm leap repository with:
```bash
zypper ar -f obs://network:idm network_idm
```
Then you need to refresh your metadata and install the clients.
```bash
zypper ref
zypper in kanidm-clients
```
### macOS - Homebrew
[Kanidm provides a Homebrew cask](https://github.com/kanidm/homebrew-kanidm),
which lets [Homebrew](https://brew.sh/) build and install the CLI client tools
from source:
```bash
brew tap kanidm/kanidm
brew install kanidm
```
> [!TIP]
>
> **Rust developers:** this formula will install a Rust toolchain with Homebrew,
> and add it to your `PATH`. *This may interfere with any Rust toolchain
> you've installed with [`rustup`](https://rustup.rs/).*
>
> You can unlink Homebrew's Rust toolchain (removing it from your `PATH`) with:
>
> ```sh
> brew unlink rust
> ```
>
> Homebrew will always use its version of Rust when building Rust packages, even
> when it is unlinked.
>
> Alternatively, you may wish to [install the Kanidm CLI with `cargo`](#cargo)
> instead this will use whatever Rust toochain you've already installed.
### Arch Linux
[Kanidm on AUR](https://aur.archlinux.org/packages?O=0&K=kanidm)
### Fedora / Centos Stream
> [!NOTE]
>
> Kanidm frequently uses new Rust versions and features, however Fedora and CentOS frequently are
> behind in Rust releases. As a result, they may not always have the latest Kanidm versions
> available.
Fedora has limited support through the development repository. You need to add the repository
metadata into the correct directory:
```bash
# Fedora
wget https://download.opensuse.org/repositories/network:/idm/Fedora_38/network:idm.repo
# Centos Stream 9
wget https://download.opensuse.org/repositories/network:/idm/CentOS_9_Stream/network:idm.repo
```
You can then install with:
```bash
dnf install kanidm-clients
```
### NixOS
[Kanidm in NixOS](https://search.nixos.org/packages?sort=relevance&type=packages&query=kanidm)
### Ubuntu and Debian
See <https://kanidm.github.io/kanidm_ppa/> for nightly-built packages of the current development
builds, and how to install them.
## Alpine Linux
Kanidm is available in the
[Alpine Linux testing repository](https://pkgs.alpinelinux.org/packages?name=kanidm%2A).
To install the Kanidm client use:
```bash
apk add kanidm-clients
```
## Tools Container
In some cases if your distribution does not have native kanidm-client support, and you can't access
cargo for the install for some reason, you can use the cli tools from a docker container instead.
This is a "last resort" and we don't really recommend this for day to day usage.
```bash
echo '{}' > ~/.cache/kanidm_tokens
chmod 666 ~/.cache/kanidm_tokens
docker pull kanidm/tools:latest
docker run --rm -i -t \
--network host \
--mount "type=bind,src=/etc/kanidm/config,target=/etc/kanidm/config" \
--mount "type=bind,src=$HOME/.config/kanidm,target=/home/kanidm/.config/kanidm" \
--mount "type=bind,src=$HOME/.cache/kanidm_tokens,target=/home/kanidm/.cache/kanidm_tokens" \
kanidm/tools:latest \
/sbin/kanidm --help
```
If you have a ca.pem you may need to bind mount this in as required as well.
> [!TIP]
>
> You can alias the docker run command to make the tools easier to access such as:
```bash
alias kanidm="docker run ..."
```
## Cargo
The tools are available as a cargo download if you have a rust tool chain available. To install rust
you should follow the documentation for [rustup](https://rustup.rs/). These will be installed into
your home directory. To update these, re-run the install command. You will likely need to install
additional development libraries, specified in the [Developer Guide](developers/).
```bash
cargo install kanidm_tools
```