165 lines
4.1 KiB
Markdown
165 lines
4.1 KiB
Markdown
# 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.
|