Contents
Intro
A list of tools that can be used to build multi-package systems; in chroots, app/service containers, disk images, VMs or other formats.
Unpack/configure packages to a location
Tool |
Language |
Formats |
Comments |
shell, Perl |
directory |
works on systems without apt, used in d-i |
|
Perl, Python |
directory, tarball, ext2, squashfs, null |
no superuser privileges required, multiple mirrors possible, stable includes security mirrors by default, twice as fast as debootstrap, chroots with only Essential:yes or without apt possible, bit-by-bit reproducible with SOURCE_DATE_EPOCH set, foreign architecture chroots supported |
|
|
directory |
|
|
C++ |
directory |
research project for fast install bootstrap through parallelism |
|
|
directory |
|
|
Perl |
directory |
only for rpm packages, build rpm distro chroot on Debian |
|
shell, Perl |
directory |
fai dirinstall creates a chroot |
Wrappers
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
shell |
|
directory |
little shell wrapper around debootstrap, supports multiple architectures via qemu-user |
|
shell |
|
ZIP file containing rootfs, kernel, initrd |
wrapper around mmdebstrap |
|
Python |
|
|
wrapper around mmdebstrap for YAML configuration |
|
shell |
|
|
wrapper around mmdebstrap, targeted at building Debian testing → stable backports |
|
Bash |
|
|
wrapper around debootstrap, reproducible rootfs builds (especially for application containers) |
Package build tools
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
Perl |
|
|
chroot/unshare/schroot/autopkgtest(schroot/lxc/chroot/qemu/ssh) for isolation. |
|
Bash |
|
|
chroot for isolation |
|
C |
|
|
chroot for isolation, cowdancer via LD_PRELOAD for copy-on-write |
|
C |
|
|
qemu for isolation |
|
Python |
|
|
systemd-nspawn for isolation |
|
Python |
|
|
systemd-nspawn for isolation |
|
Ruby |
|
|
docker for isolation |
|
Shell |
|
|
docker for isolation |
|
?JavaScript |
|
|
docker for isolation |
|
Bash |
|
|
docker for isolation |
|
Python |
|
|
docker for isolation |
|
Bash |
|
|
docker for isolation |
|
Bash |
|
|
docker for isolation |
|
Bash |
|
|
docker for isolation |
|
Bash |
|
|
docker for isolation |
|
Shell |
|
|
docker for isolation |
|
Python |
|
|
docker for isolation. Integrates with Jenkins & VSCode. |
|
shell |
|
|
Podman and Docker for isolation. All steps automated, easiest to use. |
|
Python |
|
|
docker for isolation |
Manual install related
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
|
shell, C |
|
|
|
||
calamares |
|
|
|
used on the LiveCD |
|
Haskell |
|
|
?? |
||
Ubuntu/Mint installer, uses d-i in backend. |
|||||
|
|
|
based on vmdb2, announcement |
||
Common Lisp |
|
|
similarish to propellor |
General tools
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
python, configuration specified in yaml |
read/write |
raw |
vmdebootstrap successor |
|
shell |
||||
ocaml |
read/write |
qcow2, raw |
||
python3, configuration in INI |
configurable rw or ro |
UKI, DDI (GPT), squashfs/erofs, qcow, directory/chroot, cpio, kernel+initrd |
Does not require privileges, can build container images and/or VM images and/or bare-metal bootable images and/or UKIs, supports multiple distributions/architectures |
|
Shell |
read/write |
dir(rootfs) |
Deprecated, prefer distrobuilder; linux containers create new buildroots from scripts in lxc-templates |
|
Go |
read/write |
dir(rootfs), tar, qcow2 |
Modern system container image builder for LXC, LXD and Incus |
|
Shell |
|
|
WARNING: some questionable customizations |
|
|
|
|
can do installations, chroots, disk images, cross architecture |
|
Go |
|
|
Data driven rootless image creation tool. debos intro |
|
python |
|
|
Creates (chroots and) bootable virtual machine images |
|
python |
|
|
|
|
C |
||||
python |
|
iso, tar |
very alpha, not ready for production use, similar to debos and mkosi but much larger in scope (meant to be used for appimages/installer/ppa systems eventually) |
|
python |
read/write |
iso,qcow2,raw |
Also used by SUSE and Redhat, supports non-root building in a VM |
|
shell |
|
ext4 raw image |
Create and run Debian-based VM images for various releases and architectures |
Live related (read-only)
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
uses fai dirinstall |
||||
uses fai-cd |
writeable data partition possible |
|
UEFI boot and legacy boot |
|
|
Read-only |
initramfs |
||
FreedomBox related
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
Python |
read/write |
disk image |
uses debootstrap internally |
|
Cloud related
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
|
Python |
|
|
deprecated, removed from Debian 11 |
||
shell, python |
|||||
shell |
|||||
Perl |
|||||
fai-diskimage, The Debian cloud team is using FAI for official cloud images |
|||||
|
|
|
wapper around FAI |
|
|
Python |
|
|
wapper around virt-install |
|
Embedded related
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
Python |
||||
Python |
|
|
For Olimex devices |
|
shell |
|
|
Build ready-to-burn Debian image for RISC-V boards (Hifive Unmatched, Visionfive v2, Allwinner D1 board) |
|
Python |
|
|
App container related
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
Service container related
Derivatives
The derivatives census lists image and install tools.
Other
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
Related tools
Historical
These tools should no longer be used and are kept here as a historical record.
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
|
|
|
directory |
obsolete |
works without root, abandoned upstream |
|
|
|
directory |
multiple apt repos, docs, abandoned upstream |
Discussions
<CAKTje6GG=PyyfH+FM_LNiajfohkcUFd3Qtko=fNWfmX4dtHSmw@mail.gmail.com>: Flashable image generation Re: Bits from ARM porters
<55999F8A.8000807@ghraoui.name>: oem-config for Debian
<570E0639.6040609@pocock.pro>: creating official Debian images for ARM-based NAS devices
<CAKTje6H3_Rvxkt226zJBqzGZBhZRP2GAHry0nFSvWyes=Q3gYw@mail.gmail.com>: support for installing unconfigured systems (VM images, Debian Live images, preinstalled mobile/tablet images)
Talks
DebConf18: Building Debian-based system images by Ben Hutchings (notes)
Cambridge mini-DebConf 2017: Build disk images with FAI by Thomas Lange
DebConf17: Installing Debian BoF by Vagrant Cascadian (notes)
DebConf15: Creating bootable Debian images by Riku Voipio
DebConf9: Building Debian from Debian by Vagrant Cascadian