[Debian-np-devel] Simple CDD Tutorial

Enrico Zini debian-np-devel@lists.alioth.debian.org
Fri, 12 Nov 2004 21:23:53 +0100


--J/dobhs11T7y2rNN
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello people!

I've been starting this simple tutorial showing the most basic
techniques to make CDDs.  In it you can find a description of the sample
scenario and an Otavio brain dump about the technology involved.

I still haven't gone through the process of creating one, but I've seen
that Vagrant is working on it, so this may be useful and if someone is
doing this kind of work, (s)he could do it under 'script' and fill-in
the tutorial with the actual commands.

Here it is:

 * Simple CDD Tutorial

This tutorial explains how to create a simple Custom Debian
Distribution[1] (CDD) by just changing the package selection and the
debconf defaults (debconf preseeding).  This tutorial only shows simple
techniques that already work, but are not enough to have full control
over the resulting distribution; however, they should be already enough
for various kinds of customization tasks.

Consider this tutorial as a "step 0" of customizing Debian: it gives you
limited but useful possibilities, and a starting point to learn more.


** What you can do with this tutorial

Select packages, pre-answer debconf questions.


** What you cannot do with this tutorial

Arbitrarily configure packages, distribute patched packages, alter user
default configurations.


 * Example scenario

Sarge finally gets out, and you would like to make an Italian version of
it.

I want to have one single installation CD, and with all the italian
dictionaries and OOo and Mozilla locales in that.  Plus, I want
questions which are trivial for the Italians to be answered already.

=20
 * Tools

Before first rebook it d-i
After reboot it's base-config and tasksel

debian-cd is the tool that makes the CD image, and uses a local mirror
and a debian-installer images, puts both together and writes an ISO.


 * Rationales

** Package selection

With debian-cd I choose the packages that are inside the CD, and the
packages that are installed.  To select them, there is a task file: I
put there the packages I want and debian-cd also brings in the
dependencies for me.  The order is important for choosing which package
goes in which CD.

debian-cd's base-includes can be used to pull in packages in a default
installation, but it needs the full dependencies because they'll be
installed with dpkg.  These packages will be installed before the
reboot.

After installation, tasksel installs packages, from the tasks selected
plus an invisible locale task, which pulls in packages that are
essential for a specific locale.  It is possible to add a new task to
tasksel which is installed automatically, and that can be used to pull
in the special packages you want in your distro.  To do that, you need
to make a package that adds a configuration file for tasksel, and
install that package adding it to debian-cd's base-includes.

To download the packages needed for the local debian-cd mirror, you can
use a full mirror, or just download what you need using debpartial-mirror

** Debconf preseeding

It is possible to include another base-includes package which includes
one file to be used by base-config to do the preseeding.  Information on
how to do this is present in the base-config package.



 * Let's do it, step by step

# aptitude install debian-installer debpartial-mirror

TODO: Edit initial d-i package list

TODO: Edit debconf preseeding

TODO: Create the CD



# apt-get install cdd-dev cdd-doc
TODO: Package selection (create metapackages)
TODO: Edit user menus




[1] A Custom Debian Distribution is a distribution derived from Debian
which is still 100% Debian.


Ciao,

Enrico

--
GPG key: 1024D/797EBFAB 2000-12-05 Enrico Zini <enrico@enricozini.org>

--J/dobhs11T7y2rNN
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)

iD8DBQFBlRvZ9LSwzHl+v6sRAoKwAJ0a6YZLL3wlnenTdFqLO4ELgGq5egCdF+Lh
h4d7xQm6dBfZQIOnW2WU+1Q=
=m0rd
-----END PGP SIGNATURE-----

--J/dobhs11T7y2rNN--