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

debootstrap

shell, Perl

directory

works on systems without apt, used in d-i

mmdebstrap

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

cdebootstrap

directory

zdebootstrap

C++

directory

research project for fast install bootstrap through parallelism

crosshurd

directory

rinse

Perl

directory

only for rpm packages, build rpm distro chroot on Debian

fai-server

shell, Perl

directory

fai dirinstall creates a chroot

Wrappers

Tool

Language

Read-only/Writable

Formats

Comments

qemu-debootstrap

shell

directory

little shell wrapper around debootstrap, supports multiple architectures via qemu-user

DQIB

shell

ZIP file containing rootfs, kernel, initrd

wrapper around mmdebstrap

bdebstrap

Python

wrapper around mmdebstrap for YAML configuration

deb-bpo-builder

shell

wrapper around mmdebstrap, targeted at building Debian testing → stable backports

debuerreotype

Bash

wrapper around debootstrap, reproducible rootfs builds (especially for application containers)

Package build tools

Tool

Language

Read-only/Writable

Formats

Comments

sbuild

Perl

chroot/unshare/schroot/autopkgtest(schroot/lxc/chroot/qemu/ssh) for isolation.

pbuilder

Bash

chroot for isolation

cowbuilder

C

chroot for isolation, cowdancer via LD_PRELOAD for copy-on-write

qemubuilder

C

qemu for isolation

conbuilder

Python

systemd-nspawn for isolation

debspawn

Python

systemd-nspawn for isolation

whalebuilder

Ruby

docker for isolation

whalebuilder

Shell

docker for isolation

voidbuilder

?JavaScript

docker for isolation

docker-buildpackage

Bash

docker for isolation

debocker

Python

docker for isolation

debdocker

Bash

docker for isolation

deb-build-pkg

Bash

docker for isolation

DUE

Bash

docker for isolation

rocm-builder

Bash

docker for isolation

docker-deb-builder

Shell

docker for isolation

debpic

Python

docker for isolation. Integrates with Jenkins & VSCode.

Debcraft

shell

Easiest way to modify and build Debian packages. Supports both Docker and Podman.

Tool

Language

Read-only/Writable

Formats

Comments

debian-installer

shell, C

calamares

used on the LiveCD

propellor

Haskell

propellor is d-i 2.0

??

ubiquity

Ubuntu/Mint installer, uses d-i in backend.

v-i

based on vmdb2, announcement

consfigurator

Common Lisp

similarish to propellor

General tools

Tool

Language

Read-only/Writable

Formats

Comments

vmdb2

python, configuration specified in yaml

read/write

raw

vmdebootstrap successor

qemu-make-debian-root

grml-debootstrap

shell

virt-builder

ocaml

read/write

qcow2, raw

vmbuilder

build-simple-cdd

debootstick

mkosi

Kameleon

lxc-create

Shell

read/write

dir(rootfs)

Deprecated, prefer distrobuilder; linux containers create new buildroots from scripts in lxc-templates

distrobuilder

Go

read/write

dir(rootfs), tar, qcow2

Modern system container image builder for LXC, LXD and Incus

debian-rootfs

Shell

WARNING: some questionable customizations

FAI

can do installations, chroots, disk images, cross architecture

debos

Go

Data driven rootless image creation tool. debos intro

image-bootstrap

python

Creates (chroots and) bootable virtual machine images

apt2ostree

python

boxer

genimage

C

dmm

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)

kiwi

python

read/write

iso,qcow2,raw

Also used by SUSE and Redhat, supports non-root building in a VM

debvm

shell

ext4 raw image

Create and run Debian-based VM images for various releases and architectures

Tool

Language

Read-only/Writable

Formats

Comments

live-build

open-infrastructure-system-build

live-wrapper

grml-live

uses fai dirinstall

FAI

uses fai-cd

writeable data partition possible

UEFI boot and legacy boot

debirf

Read-only

initramfs

supermin

NEALE

Tool

Language

Read-only/Writable

Formats

Comments

freedom-maker

Python

read/write

disk image

uses debootstrap internally

freedombox_dev

ISAR

ELBE

Tool

Language

Read-only/Writable

Formats

Comments

ganeti-instance-debootstrap

bootstrap-vz

Python

deprecated, removed from Debian 11

python-diskimage-builder

shell, python

openstack-debian-images

shell

packer

xen-tools

Perl

TKLDev

Scaleway

fai-server

fai-diskimage, The Debian cloud team is using FAI for official cloud images

debian-cloud-images

wapper around FAI

image-factory

Python

wapper around virt-install

Tool

Language

Read-only/Writable

Formats

Comments

linaro-media-create

Python

buildroot

Armbian lib

omap-image-builder

FAI

Announcement for cross-architecture support

olimage

Python

For Olimex devices

mkimage-debian

shell

Build ready-to-burn Debian image for RISC-V boards (Hifive Unmatched, Visionfive v2, Allwinner D1 board)

moulin

Python

https://bugs.debian.org/1032323

Tool

Language

Read-only/Writable

Formats

Comments

AppImageKit

limba

snappy

flatpak

Tool

Language

Read-only/Writable

Formats

Comments

docker

rkt

Derivatives

The derivatives census lists image and install tools.

Other

Tool

Language

Read-only/Writable

Formats

Comments

rootstrap

debian-knoppix

debix

bootcd

mklivecd

fsprotect

Historical

These tools should no longer be used and are kept here as a historical record.

Tool

Language

Read-only/Writable

Formats

Comments

polystrap

directory

obsolete

works without root, abandoned upstream

multistrap

directory

multiple apt repos, docs, abandoned upstream

Discussions

Talks


CategorySoftware CategoryPackaging