# Incus Version Compatibility Notes ## Package landscape | Platform | Package | Current version | Type | Notes | |----------|---------|-----------------|------|-------| | Debian stable (apt) | `incus` / `incus-client` | 6.0 LTS | Frozen | Security fixes only until June 2029 | | Debian/Ubuntu (Zabbly) | `incus` / `incus-client` | 6.21 | Rolling | Official upstream repo; separate client-only package | | macOS (Homebrew) | `incus` | 6.21 | Rolling | Client only by design (no daemon on macOS) | | Arch Linux (extra) | `incus` | 6.21 | Rolling | Full daemon + client; no client-only split | | From source (Go) | -- | latest | Manual | Build just the client binary | Incus releases monthly. LTS (6.0.x) gets bug + security fixes for 2 years, then security-only for 3 more years after Incus 7.0 LTS ships. ## CLI differences between 6.0 LTS and 6.3+ ### Commands added after 6.0 | Command | Added in | Purpose | |---------|----------|---------| | `incus remote get-client-certificate` | 6.3 | Export client cert via CLI | | `incus admin os system ...` | 6.x | IncusOS system management | ### Client certificate locations (all versions) The client certificate and key are always stored on disk regardless of version: ``` ~/.config/incus/client.crt # PEM certificate ~/.config/incus/client.key # Private key ``` On snap installations: ``` ~/snap/incus/common/config/client.crt ~/snap/incus/common/config/client.key ``` Legacy LXC path: ``` ~/.config/lxc/client.crt ~/.config/lxc/client.key ``` Running any remote-related command (e.g. `incus remote list`) triggers auto-generation of the keypair if it doesn't exist yet. ## Installing the Incus client These instructions cover installing the **client only** (the `incus` CLI for managing remote servers). If you also need the daemon, see the platform-specific notes below. ### macOS (Homebrew) Homebrew provides the client only (macOS cannot run the daemon). ```bash brew install incus ``` Verify: ```bash incus version ``` Certificate location: `~/.config/incus/client.crt` ### Debian / Ubuntu (Zabbly upstream repo) Distribution packages ship 6.0 LTS which is missing newer CLI commands. Use the Zabbly repo for the latest version. **Remove distro package first** (if installed): ```bash sudo apt remove --purge incus incus-client sudo apt autoremove ``` **Add the Zabbly repository:** ```bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://pkgs.zabbly.com/key.asc | \ sudo gpg --dearmor -o /etc/apt/keyrings/zabbly.gpg echo "deb [signed-by=/etc/apt/keyrings/zabbly.gpg] \ https://pkgs.zabbly.com/incus/stable \ $(lsb_release -cs) main" | \ sudo tee /etc/apt/sources.list.d/incus-stable.list ``` **Install client only:** ```bash sudo apt update sudo apt install incus-client ``` Or install the full daemon + client with `sudo apt install incus`. Supported distributions: Debian 11+, Ubuntu 22.04+. ### Arch Linux Arch ships the latest Incus in the `extra` repository, but only as a combined daemon + client package. There is no client-only split. **Full package (daemon + client):** ```bash sudo pacman -S incus ``` **Client only from source** (if you don't want the daemon): ```bash go install github.com/lxc/incus/v6/cmd/incus@latest ``` This puts the binary in `$GOPATH/bin` (typically `~/go/bin`). ### From source (any platform with Go) Build just the client binary directly: ```bash go install github.com/lxc/incus/v6/cmd/incus@latest export PATH="${GOPATH:-$HOME/go}/bin:$PATH" ``` Requires Go 1.22+. ### Verify installation ```bash incus version # Client version: 6.21 ``` Generate a client certificate (if one doesn't exist yet): ```bash incus remote list ls ~/.config/incus/client.crt ``` ## Multi-machine certificate identity When managing IncusOS nodes from multiple machines, use the **same** client certificate on all management machines. Copy the keypair: ```bash # From source machine to target machine scp ~/.config/incus/client.crt ~/.config/incus/client.key user@target:~/.config/incus/ ``` This ensures all machines are recognized as the same trusted client. Using different certificates means each must be individually trusted on every managed node.