# Supported systems

Find supported operating systems, exact baseline IDs, and architecture names for the CLI and desktop app.

Source: https://debark.dev/docs/get-started/supported-systems

---
Debark prepares apt packages for offline Debian and Ubuntu machines. The **target** is the
offline machine where you will install them. The **online computer** downloads and builds
the bundle; it can run a different operating system.

## Offline machine

The target matrix includes **Debian 12 and 13**, and **Ubuntu 22.04, 24.04, and 26.04**.
These releases have built-in baselines for **amd64 and arm64**. Scheduled integration
tests run amd64; arm64 execution requires a manual run with emulation enabled.
See [validation and known limitations](/docs/get-started/status).

The target needs apt and a Linux CLI binary matching its architecture. Installing packages
requires root. Debark handles .deb packages; Snap and Flatpak apps are outside its scope.

Other releases and Debian or Ubuntu derivatives are best effort. Use a captured snapshot for
them; they do not have built-in baselines. A release must have suitable apt sources and a working
[build backend](/docs/concepts/backends).

## Baseline OS list

Pass one of these exact IDs to `debark build --base` or `debark snapshot from-base`.
The same releases and variants appear in the desktop and interactive CLI selectors.

| Release | Baseline ID |
| --- | --- |
| Debian 12 (bookworm) | `debian:12/minimal` |
| Debian 12 (bookworm) | `debian:12/server` |
| Debian 12 (bookworm) | `debian:12/desktop` |
| Debian 13 (trixie) | `debian:13/minimal` |
| Debian 13 (trixie) | `debian:13/server` |
| Debian 13 (trixie) | `debian:13/desktop` |
| Ubuntu 22.04 (jammy) | `ubuntu:22.04/minimal` |
| Ubuntu 22.04 (jammy) | `ubuntu:22.04/server` |
| Ubuntu 22.04 (jammy) | `ubuntu:22.04/desktop` |
| Ubuntu 24.04 (noble) | `ubuntu:24.04/minimal` |
| Ubuntu 24.04 (noble) | `ubuntu:24.04/server` |
| Ubuntu 24.04 (noble) | `ubuntu:24.04/desktop` |
| Ubuntu 26.04 (resolute) | `ubuntu:26.04/minimal` |
| Ubuntu 26.04 (resolute) | `ubuntu:26.04/server` |
| Ubuntu 26.04 (resolute) | `ubuntu:26.04/desktop` |

For example:

```bash
debark build --base ubuntu:24.04/minimal --arch amd64 jq
```

You can omit `/minimal`: `ubuntu:24.04` means `ubuntu:24.04/minimal`.
Version numbers are required in built-in IDs; use `24.04`, not `noble`.

List the baselines in your installed CLI:

```bash
debark snapshot list-bases --arch amd64
```

### Choose the variant

| Variant   | What Debark assumes is already installed                         |
| --------- | ---------------------------------------------------------------- |
| `minimal` | A small base system with apt. This is the default.               |
| `server`  | The base system and standard server packages.                    |
| `desktop` | The base system and the distribution’s default desktop packages. |

Choose the variant that matches your target. These are package assumptions, not operating
system installers. A desktop baseline used for a minimal machine can skip dependencies
that the machine still needs. Use a snapshot for a customized machine, or when you need its
actual installed package list and apt settings.

Baseline builds have less end-to-end testing than builds from captured snapshots. The
[baseline guide](/docs/get-started/no-target-machine#check-the-bundle-on-the-target) explains
how to check the assumptions before installing.

## Target architecture

Use Debian’s architecture names with `--arch`:

| CLI value | Hardware                                         | Coverage                                   |
| --------- | ------------------------------------------------ | ------------------------------------------ |
| `amd64`   | 64-bit Intel and AMD (also called x86_64 or x64) | Tested target matrix; desktop selector     |
| `arm64`   | 64-bit ARM (also called aarch64)                 | Published CLI; integration runs are opt-in |

For example, to build for an ARM64 machine:

```bash
debark build --base debian:13/minimal --arch arm64 jq
```

Without `--arch`, baseline builds use the online computer’s architecture. Specify it when
the target differs. On the target, check with:

```bash
dpkg --print-architecture
```

The CLI also recognizes `armhf`, `armel`, `i386`, `ppc64el`, `s390x`, and `riscv64`.
These are best effort: a recognized name does not mean every release has suitable packages
or a container image. Cross-architecture container builds also need working emulation.

## Online computer

| Tool            | Operating system and architecture              | Build requirements                                                                                                    |
| --------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| CLI             | Linux amd64 / arm64                            | Native apt matching the target release, or Docker / Podman.                                                           |
| CLI             | macOS Intel / Apple silicon                    | Source build only; no release binary, CI, or recorded container validation. Needs Docker / Podman and a Linux helper. |
| CLI             | Windows amd64                                  | Docker / Podman and a Linux helper binary. Limited testing of the complete build workflow.                            |
| Desktop package | Linux amd64: Ubuntu 24.04 / 26.04 or Debian 13 | The CLI, plus the same apt or container requirements.                                                                 |

The desktop package does not install on Ubuntu 22.04 or Debian 12 because its system-library
requirements are newer. Those releases still work as **offline targets**. The desktop release
configuration currently builds amd64 packages; it does not publish a Linux arm64 package.

Windows desktop builds are experimental and unsupported. There is no macOS desktop build.

Published CLI binaries cover Linux amd64/arm64 and Windows amd64. Other architectures
recognized by the CLI do not have release binaries.
See [installation](/docs/get-started/installation) for package availability and how to copy the
Linux CLI to the offline machine, and [backends](/docs/concepts/backends) for containers and
Linux helper setup.

<NextSteps
  items={[
    {
      title: 'Build with a baseline OS',
      href: '/docs/get-started/no-target-machine',
      description: 'Choose a baseline and prepare a bundle.',
    },
    {
      title: 'Use the interactive CLI',
      href: '/docs/get-started/interactive',
      description: 'Select your target through guided questions.',
    },
    {
      title: 'Install the CLI',
      href: '/docs/get-started/installation',
      description: 'Set up your online and offline computers.',
    },
  ]}
/>
