summaryrefslogtreecommitdiffstats
path: root/dev/todo/installation-bootstrap-tool.mdwn
blob: 14610fb55ef9fe555a7753810e1734d2b2883c17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[[!meta title="Installation Bootstrap Tool"]]

A tool similar to [debootstrap][debootstrap] of Debian needs to be written to
bootstrap the installation of a basic system.  It can be used for building
packages (see "Package Cross Building Tool" below) or installing the operating
system on hardware targets.

Basically, the tool would fetch from the package archive the index of packages,
determine which packages need to be installed, download each package, and unpack
each package.  Since the package manager may not be available, the tool must
handle dependency resolution and package unpacking on its own.

To be determined is how the "second stage" of the installation ‒ the execution
of package maintainer scripts (`preinst` and `postinst`) to complete the
configuration of each package ‒ will be done.  At least most of the time, this
tool will be used to install packages built for an architecture that differs
from the architecture on which the tool is run; therefore utilities used by
maintainer scripts may not be executable.  In this situation, debootstrap leaves
behind a copy of itself in the installed system to be executed on the target
architecture.  Such a solution might not work for this tool, because nothing can
be executed on the target architecture until the installed system is booted, and
the installed system shouldn't be booted until after the packages are
configured.

We can't use debootstrap, since the formats of our binary packages and package
archives differ slightly from those of Debian.  But we can model our tool after
debootstrap or even just fork debootstrap.

If written portably (i.e. in conformance with POSIX.1), this tool could be used
to make base system images on any UNIX-like operating system with an
implementation of tar.  On any operating system that also has a chroot program,
this tool can be used with the package cross building tool described below to
build packages for this distribution.  Therefore, these tools can be thought of
as a "Software Development Kit" ("SDK") for the distribution, usable on any
capable development system.

Hopefully, this tool can be done by October 2012.


[debootstrap]: http://anonscm.debian.org/gitweb/?p=d-i/debootstrap.git;a=tree