On Fri, 07 Jun 2019 at 19:29:49 +0200, Adam Borowski wrote:
> A desktop install can writeout
> while the user answers installer questions

I can't help wondering whether the right answer for a finite number
of relatively predictable installations (a minimal system, or all of
Priority: standard, or all of [insert favourite desktop environment
here]) is to build a pre-prepared installation image, unpack it onto
disk as one big blob (some compressed archive, or an unpacked tree on
the installation media, or OSTree, or OCI, or whatever other format is
most appropriate), and do the configuration steps during the first boot
into the installed system.

Smaller customizations like whether to install sshd or not could be done
during first-boot; larger customizations like "I want to install both
GNOME and KDE" are less suitable for this, but is that common enough to
be optimizing for?

This is the approach assumed by gnome-initial-setup, which we don't
really support in Debian yet (it's automatically run by gdm if there are
no users in the "ordinary user" uid range, but d-i never sets up that
situation), and also one of the modes the cross-desktop/cross-distro
Calamares installer can work in.

It's also very suitable for preinstalled hardware, where it's sometimes
referred to as the "out of the box experience": the hardware vendor does
the partitioning and the "unpack installation image" step (in practice
via a disk image), then ships the device, and the buyer starts from the
first boot into the installed system (which could start by expanding
the disk image from its minimal size to a disk-filling partition, so
one disk image can work for many disk sizes).

If the pre-prepared installation image is in a suitable format (for
example an unpacked tree, squashfs or OSTree, but not a tarball or an
OCI image), then there's no reason it couldn't also be bootable as a
stateless live system.

> * almost all Pre-Depends and preinsts care only about upgrades
> * dpkg-diverts can be a problem but going yolo seems to work for me so far

These seem fine for a prototype, but also like the sort of assumption
that is likely to come back to haunt you when moving from prototype to
production, unless supported by Policy requiring some identifiable class
of bad things not to happen.

    smcv

Reply via email to