From: cjwatson <>
Date: Tue, 3 Jan 2006 15:32:27 +0000 (+0000)
Subject: Single-stage installer
X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?a=commitdiff_plain;h=72abd4b8f3858f97c3e522f326bec94bb6974bf6;p=blog.git
Single-stage installer
---
diff --git a/ubuntu/2006-01-03-single-stage-installer.txt b/ubuntu/2006-01-03-single-stage-installer.txt
new file mode 100644
index 00000000..89ab213c
--- /dev/null
+++ b/ubuntu/2006-01-03-single-stage-installer.txt
@@ -0,0 +1,88 @@
+Single-stage installer
+
+
Hot on the heels of
+
+Joey's tale of getting rid of base-config (the second stage of the
+installer) in Debian, we've now pretty much got rid of it in Ubuntu Dapper
+too. The upshot of this is that rather than asking a bunch of questions,
+installing the base system, and rebooting to install everything else, we now
+just install everything in one go and reboot into a completed system.
+
+This does mean that, if your system doesn't boot, you don't get to find
+out about it for a bit longer. However, it has lots of advantages in terms
+of speed (the much-maligned archive-copier mostly goes away), reducing code
+duplication (base-config had a bunch of infrastructure of its own which was
+done better in the core installer anyway), comprehensibility, and killing
+off some annoying bugs like
+#13561
+(duplicate mirror questions in netboot installs),
+#15213 (second
+stage hangs if you skip archive-copier in the first stage), and
+#19571 (kernel
+messages scribble over base-config's UI).
+
+To go with Joey's Debian timeline, the Ubuntu history looks a bit like
+this:
+
+
+ - 2004 (Jul): First base-config modifications for Ubuntu; we need to
+ install the default desktop rather than dropping into tasksel.
+
+ - 2004 (Aug): Mark phones me up and asks if I can make the installer not
+ need the CD in the second stage by copying all the packages across
+ beforehand. Although it's a bit awkward, I can see the UI advantages in
+ that, so I write archive-copier at the Canonical conference in
+ Oxford.
+
+ - 2004 (Sep): Mark asks me if we can ask the timezone, user/password,
+ and apt configuration questions before the first reboot. With less than a
+ month to go until our first release, I have a
+
+ heart-attack at how much needs to be done, and it eventually gets
+ deferred to Hoary.
+
+ - 2005 (Jan): Matt fixes up debconf's passthrough frontend for use on
+ the live CD, and we realise that this is an obvious way to run bits of
+ base-config before the first reboot. It's rather messy and takes until
+ March or so before it really works right, but we get there in the
+ end.
+
+ - 2005 (Apr): I get "put a progress bar in front of the dpkg output in
+ the second stage" as a
+ goal
+ for Breezy. Naïvely, I think it's a simple matter of programming,
+ since I'd already done something similar for debootstrap and
+ base-installer the previous year.
+
+ - 2005 (May): I hack progress bar support into debconf. Nothing actually
+ uses it for anything yet, except as a convenient passthrough stub.
+
+ - 2005 (Jul/Aug): I actually try to implement the second-stage progress
+ bar and realise that it's about an order of magnitude harder than I
+ thought, requiring a whole load of extra infrastructure in apt.
+ Fortunately Michael Vogt saves the day here by writing lots of working
+ code, and the progress bar works by early August.
+
+ - 2005 (Sep-Dec): Upstream d-i development ramps back up again, with
+ tzsetup, clock-setup, apt-setup, and user-setup all being cranked out in
+ short order and the corresponding pieces removed from base-config. I merge
+ these as they mature, and manage to get
+
+ agreement on including the Ubuntu debconf template changes in upstream
+ apt-setup, which helps the diff size a lot.
+
+ - 2005 (Nov/Dec): Joey and I
+ chat
+ one evening about the Ubuntu second-stage progress bar work, and we end up
+ designing and writing debconf-apt-progress based on its ideas, after which
+ Joey knocks up pkgsel in no time flat.
+
+ - 2006 (Jan): The rest of the pieces land in Ubuntu, and we drop
+ base-config out of the installer. To my surprise, nearly everything still
+ just works.
+
+
+Although it caused some friction, I'm glad that we did the first cuts of
+many of these things outside Debian and got to try things out before landing
+version-2-quality code in Debian. The end result is much nicer than the
+intermediate ones ever were.