rPath Linux:Installer Customization/Software Selection
From rPath Wiki
|
The rPath Linux (rPL) installer provides a step for selection of certain software to be installed during installation of appliances based on rPL. Developers can define these selections using groups when building a software appliance or derivative distribution.
rPath Linux uses a top-level group named group-dist. This name has no special meaning in the installer, and your appliance can be named differently. The top-level group in rPL includes a number of subgroups, and these are the items listed in the package selection during an appliance installation.
rPath Linux Subgroups
There are two subgroups with specific names which are handled by the Anaconda installer as described:
- group-core
- This group is not selectable during package selection, but it is always installed, even when minimal is selected. This group includes all troves required to boot the system.
- group-base
- This group contains packages that facilitate a basic text mode user environment for installation without a graphical environment. The installer includes this group by default during a graphical installation, and it allows selection of the group during text mode installations to facilitate creation of the smallest possible image.
Other groups used to build an rBuilder project are available for individual selection during installation.
Detailed Software Selection
rPath Linux 1 offers some groups to allow for customization. These groups offer some basic options for selecting packages. To provide a more detailed list for user selection during installation, group-dist should contain more subgroups with fewer troves per group. The troves in any given subgroup should be logically grouped under a descriptive subgroup name, and this subgroup name will appear to the user during package selection.
Group Hierarchy Guidelines
To simplify the process of working with a master group, use the following guidelines:
- The top-level group (group-dist in rPath Linux), though your appliance top-level group can have any name) should always be a dependency-closed group. This means that all runtime requirements for a trove in a top-level group must be met by another trove also contained within the top-level group. To accomplish this, pass depCheck=True in the group-dist recipe.
- Subgroups in a top-level group do not have to be dependency-closed. If a user selects a subgroup for installation, and a runtime dependency for that group is in another group that is not selected, the dependency is resolved and installed without installing the unselected subgroup.
- The top-level group must include a group-core with all the basic troves required to boot the system. You can choose rPath Linux's group-core contained in group-dist, or you can establish a custom group-core.
- The group-base group is installed by default, and it is not user-selectable in Anaconda's package selection.
- Any package included in group-dist but not included in a subgroup of group-dist is installed and not user-selectable. For efficient project management, avoid including troves in group-dist that are not inside of a subgroup.
- Keep all subgroups defined within the group-dist recipe to ensure all group versions remain the same.
- Keep group hierarchy as flat as possible, avoiding deeply nested groups.
- A package that is not installed without user selection can be included in any group. Add these packages with byDefault=False in the group recipe.
- Individual package selection is always possible by selecting details next to any given subgroup during package selection.
