[5495] in Release_7.7_team

home help back first fref pref prev next nref lref last post

Notes on Red Hat installer package selection

daemon@ATHENA.MIT.EDU (Greg Hudson)
Tue Jun 20 15:17:56 2006

Date: Tue, 20 Jun 2006 15:17:44 -0400
Message-Id: <200606201917.k5KJHib4009431@egyptian-gods.mit.edu>
From: Greg Hudson <ghudson@MIT.EDU>
To: release-team@MIT.EDU
X-Spam-Score: 3.548
X-Spam-Level: *** (3.548)
X-Spam-Flag: NO

After a bunch of false starts, I believe I have worked out the model
for how Fedora Core 5 does package selection at install time.  I think
there have been some changes since RHEL 4, but the basic ideas are
probably similar.

In the Fedora directory of the install media is a file named
base/comps.xml.  This file is hard to read since it contains a million
translation strings, but basically it contains group specifications
like:

  <group>
    <id>xen</id>
    <name>Xen</name>
    <description>These packages provide the kernel and userspace tools needed for using the Xen virtual machine monitor</description>
    <default>false</default>
    <uservisible>false</uservisible>
    <packagelist>
      <packagereq type="mandatory">kernel-xen0</packagereq>
      <packagereq type="mandatory">xen</packagereq>
      <packagereq type="default">gnome-applet-vm</packagereq>
    </packagelist>
  </group>

There are also category specifications to organize those groups
(e.g. the "desktops" category which contains the gnome-desktop and
kde-desktop groups).  If "default" is true, the group's packages will
be installed by default; if "uservisible" is true, the group's install
state can be turned on or off.  So, for instance, the "core" group is
default-on but uservisible-off, so that the user can't elect not to
install it.

Within the package list, a package can be marked as "mandatory"
(always installed when the group is selected), "default" (may be
turned off in package customization), and "optional" (may be turned on
in package customization, but defaults to not installed).

There is also a concept of tasks, which are defined by the Anaconda
source code.  The default tasks for Fedora Core 5 are:

    tasks = [(N_("Office and Productivity"), ["graphics", "office", "games", "sound-and-video"]),
             (N_("Software Development"), ["development-libs", "development-tools", "gnome-software-development", "x-software-development"],),
             (N_("Web server"), ["web-server"])]

If a group is listed in a task description, its default install state
will be determined by whether the task is selected by the installing
user, not by its default flag.  (As best I can determine, anyway.)

I assume packages may wind up installed because other packages depend
on them, even if they aren't part of a selected group.  Also, not all
packages are listed in a group.

My original motivation for wanting to understand this was wanting to
be able to assemble a package list for our installer which more
closely matched what packages would be installed on a stock Red Hat
system.  Unfortunately, I don't seem to be particularly closer to that
goal; the easiest method still seems to be to install a machine with
stock RHEL 4 and get a package list.

home help back first fref pref prev next nref lref last post