The first article I wrote for LFY in Jan 2005 was on the need for
creating a custom distribution. I would have liked to send my parents
an installation CD with just what they needed without asking any
questions during installation. Obviously, the need was not uncommon.
Fedora 7 introduced spins which makes that possible. I did not use it
as I have moved in with my parents, but I now believe the time has
come to stop introducing new versions of distributions.
Fedora 9 is on its way but I hope that there will not be a Fedora
10 for many years to come. It is not to say that new developments are
not needed. Rather the manner in which they are introduced needs to
change.
The first and foremost is that there need not be any pre-built
ISO's. Downloading a distribution should be like creating a spin on
the fly. Standard spins can be predefined, not unlike Ubuntu,
Kubuntu, Xubuntu, etc. The spin created will have all the updates up
to the download date.
Create a Spin
Let's see how we can create a custom spin. Unfortunately, there
is not much to tell thanks to the revisor package. It has made
the creation of a custom distro trivial. However, since I did not
wish to download the packages again, I created a little more
excitement for myself.
I created a custom repository of all the packages from a dvd and
the additional packages I had downloaded. I added that repository to
f8-x86_64 configuration section. I enabled only my custom repository
and selected the packages I wanted.
The repository needed to have a group file and I used the group
file which came on the installation DVD for my custom repository.
The one difficulty I had was that revisor added a line
mirrors =
in the /etc/revisor/conf.d/revisor-f8-x86_64.conf. Although
revisor gave an error in yum, it took a while to figure
that the repository was not being used. I needed to remove the
offending line.
There was still another small hiccup. Revisor required the
'joe' package, which is no longer included in Fedora 8. After
a bit of a struggle, it was easy to fix it by removing the entry from
the cfg.py in the site-packages/revisor directory.
If one has a working kickstart file, pungi is an excellent
solution for creating the spin.
However, a custom spin is more likely to be created by the
hardware supplier and installed on the systems supplied by him. We
can now take it for granted that a large number of hardware
integrators will provide pre-installed Linux options. They cannot
leave the field to major suppliers like Dell, HP and Lenovo or a
maverick like the ASUS eeePC.
Kernel as A Beacon
We already have the example of the Linux kernel. It is “stuck”
on version 2.6 with no signs of version 2.7 on the way. That has not
stopped it from being enhanced substantially. The significant
advantage has been that the enhancements have been available much
faster. That does not mean that the changes have been minor.
Memory management algorithm changes were hardly minor. They are an
example of major changes though, largely, invisible to the users.
Changing the partition names from /dev/hdaN to /dev/sdaN was a change
visible to the users as well. This change required significant
changes in the configuration files of the distributions.
So, the challenge before the distributions is how to manage
upgrades so that deployments can make use of the enhancements as they
become available. This is not easy because the maintainers have to
ensure that the dependencies do not cascade and affect numerous
packages.
Managing Updates
A major tool in the management of updates for Fedora is the Presto
plugin for yum based on DeltaRPM's (introduced by Suse a couple of
years ago). This yum plugin ensures that the full rpm does not have
to be downloaded if only a part has changed. However, a more
intelligent update manager may be needed. It should be easy for a
user to know which packages have or have not been used. It should be
easy to specify that not to bother to upgrade some packages or
upgrade only if some conditions are satisfied.
For the last few upgrades in Fedora, the changes have been hardly
noticeable. Certainly, the themes have changed. The 3D effects have
come in. But operationally, switching from version 7 to 8 was hardly
noticeable by my parents. Fedora 8 though includes the switch to
PulseAudio, which is a major change under the covers. This is as it
should be because the last thing we need is for the users to have to
re-learn. So far, no one has succeeded in moving us away from the
QWERTY keyboard! The nearest we have come to it is the use of thumbs
on the cell phone.
The problems I faced in upgrading were related to PulseAudio and
the proper display of fonts for them in Thunderbird. The distribution
builders will have to ensure that even the administrative
modifications are easy. It is likely that if we are dealing with
incremental updates, it will be easier to visualize the potential
problems and plan for them.
When a distribution decides to replace a package with an
alternate, the update application should advise the user about the
alternate and make it easy to switch.
My experiences in the problems with upgrades have primarily been
related to the packages from third party repositories. In some cases,
a number of packages had to be un-installed, and then reinstalled
after the upgrade. At times, it seemed easier to just carry out a
fresh install and then install the additional packages as and when I
needed them. The process, in either case, is too disruptive and
inappropriate for non-technical users. Further, it would also be
inconvenient for the hardware integrators.
It would be desirable for Debian, Fedora, Ubuntu, Suse, Mandriva,
et al to move towards creation and maintenance of repositories which
contain all the supported versions. We buy machines with
pre-installed spins. Smart updates ensure that we never have to
upgrade or re-install a Linux distribution. Sales and marketing
departments will be very unhappy; but wait, at least, Debian, Fedora
and Ubuntu don't have any!