|
|
About
Colin Watson's blog
cjwatson@debian.org
Subscribe
Subscribe to a syndicated feed of my weblog,
brought to you by the wonders of RSS.
Flavours
There's more than one way to view this weblog; try these flavours on
for size.
Powered by Blosxom
|
|
|
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.
[/ubuntu]
permanent link
|
|