kanidm/book/src/installing_client_tools.md

167 lines
4.4 KiB
Markdown
Raw Normal View History

# 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
2022-11-09 22:42:03 +01:00
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
2022-11-09 22:42:03 +01:00
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
2022-11-09 22:42:03 +01:00
[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:
2022-11-09 22:42:03 +01:00
```bash
brew tap kanidm/kanidm
brew install kanidm
```
2022-11-09 22:42:03 +01:00
> [!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.
2022-11-09 22:42:03 +01:00
### 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.
2022-11-09 22:42:03 +01:00
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
```
2022-11-09 22:42:03 +01:00
## 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
```
2022-11-09 22:42:03 +01:00
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
```