> For the complete documentation index, see [llms.txt](https://docs.linuxguard.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.linuxguard.io/install/install/suse.md).

# SUSE / openSUSE

This guide covers installing the LinuxGuard agent on SUSE Linux Enterprise Server (SLES), openSUSE Leap (regular releases), and openSUSE Tumbleweed (rolling release).

> **Note**: **Supported architectures** — SUSE/openSUSE packages ship for `amd64` and `arm64`. ARMv7 packages are not published on the Zypper repository. See [Multi-Architecture Support](/install/install/multi-architecture.md) for the per-architecture capability matrix.

## Prerequisites

Before installing, ensure your system meets these requirements:

* **Kernel**: Linux kernel 4.18 or later
* **Permissions**: Root or sudo access
* **Network**: Outbound HTTPS access to `packages.linuxguard.io`

> **Note**: For complete system requirements including architecture and detailed prerequisites, see the [Prerequisites Guide](/install/install/prerequisites.md).

## Repository Setup

The recommended installation method uses the Zypper package manager to install LinuxGuard from the official repository.

### Step 1: Import GPG Key

Import the LinuxGuard package signing key:

```bash
sudo rpm --import https://packages.linuxguard.io/gpg/linuxguard.asc
```

### Step 2: Add Repository

Add the LinuxGuard repository to your system:

```bash
sudo zypper addrepo --gpgcheck --refresh \
  https://packages.linuxguard.io/zypper/sles/15 linuxguard
```

> **Note**: Zypper may prompt you to accept the GPG key on first installation. This is normal — review and accept the LinuxGuard signing key to proceed.

### Step 3: Install Agent

Update the repository cache and install the agent:

```bash
sudo zypper refresh
sudo zypper install linuxguard-agent
```

The installer will also install the `sysstat` dependency, which provides `iostat` and `mpstat` for system metrics collection.

## Direct Download

If you prefer to download and install the package manually, you can download the RPM package directly:

```bash
curl -fsSL -o linuxguard-agent.rpm \
  https://packages.linuxguard.io/zypper/pool/linuxguard-agent-latest.$(uname -m).rpm
sudo rpm -ivh linuxguard-agent.rpm
```

> **Note**: Manual installation does not configure automatic updates. We recommend using the repository method for production systems.

## ARM64 installation

The Zypper repository at `packages.linuxguard.io/zypper` publishes both `x86_64` and `aarch64` (arm64) packages. The repository URL in [Step 2](#step-2-add-repository) is architecture-neutral — Zypper inspects the host's architecture and pulls the matching RPM automatically.

To confirm your host is arm64 before installing:

```bash
uname -m
# aarch64
zypper info --provides | head -5
```

The arm64 RPM ships the same agent binary + compiled eBPF probe object as the amd64 RPM — `arm64` is a **full-eBPF** architecture per the [capability matrix](/install/install/multi-architecture.md#architecture-capability-matrix). No degradation, no missing telemetry.

> **Note**: ARMv7 packages are NOT published on the Zypper repository. Hosts running SLES or openSUSE variants on ARMv7 are not supported via the standard package path; consult support for alternative deployment options.

> **Note**: SLES on arm64 (aarch64) historically targeted Server-on-ARM workloads such as Ampere Altra and AWS Graviton. The package builds against the SLES 15 SP4+ kernel; if you run an older SP version, verify kernel compatibility (LinuxGuard requires kernel 4.18+ for eBPF; SLES 15 SP1 and later all satisfy this).

> **Note**: For containerized arm64 deployments (Kubernetes DaemonSet on an arm64 node pool, Podman on an arm64 host), the OCI multi-arch manifest selects the arm64 image automatically when pulling `packages.linuxguard.io/linuxguard-agent:vX.Y.Z`. See [OCI multi-arch manifest](/install/install/oci-multi-arch-manifest.md) for the manifest inspection and `--platform` pull syntax.

## Verification

After installation, verify the agent was installed correctly:

### Check Agent Binary

Confirm the agent binary is installed:

```bash
which linuxguard-agent
```

Expected output:

```
/usr/bin/linuxguard-agent
```

### Verify Agent User

Confirm the dedicated `linuxguard` user was created:

```bash
id linuxguard
```

Expected output (UID/GID may vary):

```
uid=999(linuxguard) gid=999(linuxguard) groups=999(linuxguard)
```

### Check Service Status

Verify the agent service is installed (it will not be running until enrollment):

```bash
sudo systemctl status linuxguard-agent
```

Expected output:

```
○ linuxguard-agent.service - LinuxGuard Agent
     Loaded: loaded (/usr/lib/systemd/system/linuxguard-agent.service; disabled; vendor preset: disabled)
     Active: inactive (dead)
```

The agent is now installed and ready for enrollment.

## Troubleshooting

### GPG Key Trust Prompt

**Issue**: Zypper prompts to accept GPG key during installation.

**Solution**: This is normal behavior on first install. Review the key fingerprint and accept to proceed with installation.

### Repository Priority Conflicts

**Issue**: Conflicting repository priorities cause package resolution errors.

**Solution**: Check repository priorities with:

```bash
zypper lr -P
```

Adjust priority if needed using `zypper modifyrepo --priority <number> linuxguard`.

### Tumbleweed Kernel Compatibility

**Issue**: Rolling release may have very recent kernel versions.

**Solution**: Verify the agent supports your kernel version. Contact support if you encounter compatibility issues with cutting-edge Tumbleweed kernels.

> **Note**: For additional troubleshooting guidance, see the [Troubleshooting Guide](/troubleshooting.md).

***

**Next Step**: [Configuration →](/configure/configure.md)

**Related**: [Installation Overview](/install/install.md) | [Prerequisites](/install/install/prerequisites.md) | [Uninstallation](/operate/operate/uninstallation.md)
