Debark
Get Debark
Browse docs

Refresh a bundle

Build an updated bundle using a fresh snapshot and previously downloaded packages.

How-to guideUpdated

On this page

To add packages or get newer versions, take a fresh snapshot and build again. Debark reuses cached downloads across builds, including builds written to a new folder.

1. Capture the target’s current state

On the offline machine:

debark snapshot create --out target-latest.snapshot.tar.zst

Copy the snapshot to the online builder. A fresh snapshot includes changes since the previous installation, such as new packages, holds, and repository settings.

2. Build the updated bundle

On the online builder, use the new snapshot and your current package list:

debark build --snapshot target-latest.snapshot.tar.zst \
  --out ./bundle-next --sign operator.key --update jq tree

This example assumes you already have operator.key from Sign a bundle.

--update refreshes the repository indexes and resolves the request again. It does not add a full system upgrade; add --upgrades if you want to include updates for packages already installed on the target.

Use a new output folder when you want to keep the previous bundle intact. Cached packages are still reused.

Updating an existing folder

You can point --out at the previous bundle instead. During an update, Debark removes superseded package files, while preserving files required by the current plan and files marked as user-supplied. Add --no-prune to keep superseded files too.

The following files describe the changes:

File Contents
last-run-added.txt Paths added by the latest build.
last-run-removed.txt Paths removed by the latest build.
last-run-unreferenced.txt Package files left in the folder but absent from the current apt index.

Dropping a package from your request does not necessarily remove its old file from the folder. Build into a new folder if you want the output to contain only the current build’s files.

3. Review and transfer

debark verify ./bundle-next --key operator.pub
debark inspect ./bundle-next
debark doctor ./bundle-next

Check the build’s exit code and warnings before copying the bundle. Exit code 3 means the build is incomplete; resolve the missing inputs and rebuild.

4. Install on the target

debark install ./bundle-next --key operator.pub --status
sudo debark install ./bundle-next --key operator.pub --yes

If you included upgrades, pass --upgrade to both commands. Packages already at the required version do not need to be installed again.

Clean up cached downloads

Preview cache cleanup while keeping downloads used by selected bundles:

debark store gc ./bundle ./bundle-next --dry-run

Remove --dry-run to apply it. Cache cleanup does not delete files from those bundle folders. See Download cache and cleanup for retention rules.