Distro compatibility (laptop fleets)

Ubuntu, Debian, CachyOS, Fedora, and openSUSE support.

Distro compatibility (laptop fleets)

Lindir targets remote administration of laptops and similar hosts. Ubuntu LTS and CachyOS are first-class for server and client. Debian, Fedora / RHEL-like, and openSUSE / SLES are first-class for the client.

Support matrix

Component Ubuntu / Debian CachyOS (Arch) Fedora / RHEL-like openSUSE / SLES
lindir-server .deb / install script PKGBUILD / pacman .rpm .rpm (openSUSE)
lindir-client .deb + sync timer PKGBUILD + sync timer .rpm + sync timer .rpm + sync timer
Config /etc/lindir/ Yes Yes Yes Yes
NSS (libnss-extrausers) apt (required) AUR required (paru/yay) distro package when available distro package when available
Default login shell (sync) Directory value (usually /bin/bash) /usr/bin/fish when installed Directory value Directory value
systemd / PAM / SSH Client Same Same Same
VPN plugins Optional (--skip-vpn OK) Same Same Same
Fleet packages apt-get pacman dnf zypper
Energy (logind/DPMS/dconf) Yes Yes Yes Yes
osFamily debian arch rhel suse

Pacman-based hosts (CachyOS, Arch, derivatives): official repos do not ship libnss-extrausers. Installing the client for password/SSH login requires the AUR package first: paru -S libnss-extrausers (or yay -S libnss-extrausers). See Client → Requirements.

Fleet package management

Distro Backend
Ubuntu / Debian apt-get (noninteractive)
CachyOS / Arch pacman --noconfirm
Fedora / RHEL / Rocky / Alma dnf (yum shim OK)
openSUSE Leap / Tumbleweed / SLES zypper --non-interactive

See Fleet. Reboot hints: Ubuntu /run/reboot-required; RHEL needs-restarting -r; openSUSE zypper needs-rebooting.

Packaging

See Packaging.

  • Ubuntu/Debian .deb: packaging/ubuntu/, client/packaging/ubuntu/
  • CachyOS: packaging/cachyos/, client/packaging/cachyos/
  • Fedora/RHEL: packaging/fedora/, scripts/packaging/build-rpm-*.sh
  • openSUSE: client/packaging/opensuse/, scripts/packaging/build-rpm-client-opensuse.sh

Client install (CachyOS / Arch)

Full path from a repo checkout — see also Client → CachyOS:

paru -S libnss-extrausers
sudo ./client/packaging/install.sh          # from repo root; builds + installs agent
sudo lindir-client enroll --url https://id.example.com --token "$TOKEN" --skip-vpn
sudo lindir-client sync
getent passwd alice

If the host is already enrolled, use sudo lindir-client configure-login instead of re-enrolling, then sync.

Client enroll (other distros)

# Debian/Ubuntu:
sudo apt install libnss-extrausers
sudo ./client/packaging/install.sh

sudo lindir-client enroll --url https://id.example.com --token "$TOKEN"
sudo lindir-client sync
getent passwd alice

Debian and Ubuntu both report osFamily=debian. MDM aliases debian / ubuntu match that family.

Integration tests (Podman)

From a lindir checkout (host orchestrates; enroll/sync/pam-auth run between containers):

Suite Path Gates
Fleet / package managers scripts/integration/distro/ enroll osFamily, apt/dnf/zypper
Client authentication scripts/integration/auth/ NSS, PAM, sync, getent, online/offline pam-auth on Debian, Ubuntu, Fedora, openSUSE, Arch (CachyOS stand-in), Rocky
./scripts/integration/auth/run.sh