Debian development
The Debian development extension adds debootstrap, arch-test, and the Debian and Ubuntu archive keyrings to a Frostyard bootc image. Use it to build Debian or Ubuntu root file systems. Every image carries the extension’s definition, switched off. The extension itself is not in the image: Updex turns it on and downloads it.
Before you start
Section titled “Before you start”You need:
- A Frostyard bootc image. Every image built on Base has
systemd-sysextandfrostyard-updex. - Root access to enable, update, and remove the extension.
- Network access to
https://repository.frostyard.org/ext/debdev/. - Free space in
/varfor the image.
Debian development has no published test results on Frostyard images yet. Try it on a machine you can spare first.
Enable Debian development
Section titled “Enable Debian development”See what Updex found, then enable the feature and download it now:
updex features list --component=debdevsudo updex features enable debdev --nowdebdev appears as a component, with its feature disabled. The enable command
downloads the image, checks its checksum and signature, links it, and refreshes
the merge.
Check the merge and the tools that the extension adds:
systemd-sysext statuscommand -v debootstrap arch-testsystemd-sysext status lists debdev, and each name prints a path.
If enable --now exits with a refresh error (refresh_error in JSON), the
download worked, but the activation did not. If the output says
activation did not finish, the extension is merged, but users and groups can
be missing: reboot. Otherwise the merge state is unknown: reboot. A
sudo systemd-sysext refresh by hand does not create users and groups. Then run
the checks above again.
Use Debian development
Section titled “Use Debian development”Run debootstrap as root. The extension also carries distro-info, wget, mount, binutils, debian-archive-keyring, and ubuntu-archive-keyring. Where the base image already has a package, the extension does not carry a second copy.
The build repoints every /usr/bin and /usr/sbin link that goes through /etc/alternatives to its real target. An extension cannot ship /etc, so such a link would dangle after a merge. You need no manual step.
Update, roll back, and remove
Section titled “Update, roll back, and remove”Check for an update, then install it:
updex features check --component=debdevsudo updex features update --component=debdevUpdex downloads and verifies the new image, switches the link, deletes older versions, and refreshes the merge. See Manage system extensions for --no-vacuum, --dry-run, and the update timer. The refresh swaps /usr under the running system.
Roll back with sudo updex features rollback debdev. It takes effect at the next boot. See Roll back.
Remove Debian development:
sudo updex features disable debdev --now --forceUpdex unmerges all extensions on the host, deletes the image, and merges the rest again. The tools this extension adds go. Root file systems you built stay where you put them. Reboot when the command finishes. Without --force, Updex refuses while the image is merged.
What ships
Section titled “What ships”| Item | What you get |
|---|---|
| Package requests | debootstrap, distro-info, wget, arch-test, debian-archive-keyring, mount, binutils, ubuntu-archive-keyring |
| Tools in the image | /usr/sbin/debootstrap and /usr/bin/arch-test |
| Version | The image file name carries the debootstrap package version, plus a +rN snosi revision when one is set |
| Image file | debdev_<version>_<os>_<arch>.raw.zst; .raw.xz, .raw.gz, and .raw also work |
| Download | From https://repository.frostyard.org/ext/debdev/, signature required (Verify=true), into /var/lib/extensions.d/ |
| Services | None |
Each build checks that /usr/sbin/debootstrap and /usr/bin/arch-test are present. A build that is missing one fails. The check runs against the image delta, so a package that the base image already supplies, such as wget, is not in the list.
See also
Section titled “See also”Sources
Section titled “Sources”Reviewed 2026-10-27; Updex facts reviewed 2026-10-30. snosi commit
b2858ca0222814c395cf8248db98f3e096d57dc9;
Updex v2.1.3 commit
2661e987faac986f2594d1d9bbbadf1bf3053f5b.
-
mkosi.images/base/mkosi.extra/usr/lib/sysupdate.debdev.d/debdev.feature -
mkosi.images/base/mkosi.extra/usr/lib/sysupdate.debdev.d/debdev.transfer -
Updex
docs/adr/0019-apply-merged-sysusers-and-tmpfiles-on-a-live-refresh.md(a live refresh runssystemd-sysusersandsystemd-tmpfiles --create; when the last refresh fails, the merge state is unknown; a refresh by hand does not runsystemd-sysusers)