Debark
Get Debark
Browse docs

Build with a baseline OS

Choose a Debian or Ubuntu baseline and build a package bundle without capturing a snapshot.

How-to guideUpdated

On this page

A baseline OS describes a stock Debian or Ubuntu installation: its release, installation variant, and architecture. Choose one on the online computer to build without taking a snapshot of the offline machine.

Use a baseline when you know the target’s standard installation or cannot access it yet. A snapshot is more accurate for a customized machine because it records its actual packages and apt settings.

Choose a baseline

Use the baseline OS list to find exact IDs for each release and variant, and the architecture table to choose the value for --arch.

List the choices in your installed CLI:

debark snapshot list-bases

The built-in releases are Debian 12 and 13, and Ubuntu 22.04, 24.04, and 26.04. Each has three variants:

Variant What it assumes is already installed
minimal The base system and apt.
server The base system and a standard server package set.
desktop The base system and the default desktop environment.

An ID combines the distribution, release, and variant: ubuntu:24.04/minimal. Omitting the variant selects minimal.

These choices describe the target; they do not install an operating system. Choose the variant that matches the machine. A desktop baseline on a minimal machine can leave needed packages out of the bundle.

Use --arch amd64 or --arch arm64 to select the target architecture. If you can access the target, dpkg --print-architecture reports it. Without --arch, the CLI uses the builder’s architecture.

Build on the online computer

You need the CLI and a working build backend. Create a signing key once, or reuse an existing one:

debark keygen --out operator.key

For example, prepare jq for Ubuntu 24.04 minimal on amd64:

debark build --base ubuntu:24.04/minimal --arch amd64 \
  --out ./bundle --sign operator.key jq

No target snapshot file is needed. Debark uses the baseline’s package assumptions to work out the downloads, then creates an ordinary package bundle.

Use either --base or --snapshot, never both. You can also use package lists, vendor .deb files, and the other build options.

Choose through interactive prompts

If you prefer questions to flags:

debark build --interactive

When asked whether you have a target snapshot, answer no. Choose the distribution, release, variant, and architecture, then enter your packages and build options.

The interactive CLI guide explains the prompts and saved package list.

Save a baseline for reuse

You can optionally save the generated baseline as a snapshot file:

debark snapshot from-base ubuntu:24.04/minimal \
  --arch amd64 --out base.tar.zst

Then pass --snapshot base.tar.zst in later builds. It still describes an assumed baseline, not a captured machine. This extra step is not needed for build --base.

To choose and save a baseline through prompts, run:

debark snapshot from-base --interactive

Check the bundle on the target

Follow the quickstart to transfer the bundle and provide the public key separately. Preview the installation:

debark install ./bundle --key operator.pub --status

The report compares the baseline’s assumptions with the real machine and warns if assumed packages are missing. Review those warnings before installing. If the baseline does not fit, capture a snapshot of the target and rebuild.

Baseline builds have less end-to-end testing than builds from captured snapshots.