Chapter 1. Using Application Stream
The following sections provide an overview of the concepts related to Application Stream in Red Hat Enterprise Linux 8.
- Section 1.1, “Distribution of content in RHEL 8” describes how content in Red Hat Enterprise Linux 8 is split into BaseOS and Application Stream.
- Section 1.2, “Types of content in Application Stream” describes the types of content provided by Application Stream.
- Section 1.3, “Modules, streams, and profiles in Application Stream” provides an overview of the new modular features in Application Stream in Red Hat Enterprise Linux 8.
- Section 1.4, “YUM usage” describes how the YUM package manager provided in Red Hat Enterprise Linux 8 combines the traditional and modular features.
1.1. Distribution of content in RHEL 8
RHEL 8 content is distributed through the two main repositories: BaseOS and Application Stream (AppStream).
- The BaseOS repository provides the core set of the underlying OS content in the form of traditional RPM packages. BaseOS components have a life cycle identical to that of content in previous Red Hat Enterprise Linux releases.
- Application Stream
- The Application Stream repository provides content with varying life cycles as both modules and traditional packages. Application Stream contains necessary parts of the system, as well as a wide range of applications previously available as a part of Red Hat Software Collections and other products and programs.
Both BaseOS and AppStream are a necessary part of a Red Hat Enterprise Linux system.
1.2. Types of content in Application Stream
Application Stream contains two types of content:
- A module describes a set of RPM packages that belong together. Modules can contain several streams to make multiple versions of applications available for installation. Enabling a module stream gives the system access to the RPM packages within that module stream.
- Traditional RPM packages
- Traditional RPM packages available for immediate installation.
The traditional methods of package management and installation are transparently supported for all content. The appropriate combination of modules and streams is automatically used to enable installation of packages that depend on modular features.
1.3. Modules, streams, and profiles in Application Stream
Application Stream contains modules. A module is a set of RPM packages that can or must be installed together. A typical module can contain packages with an application, packages with the application’s specific dependency libraries, packages with documentation for the application, and packages with helper utilities.
Each module can have one or more streams, which hold different versions of the content. Each of the streams receives updates independently.
For each module, only one of its streams can be enabled and provide its packages, allowing installation of the respective version of content.
Usually, the stream with the latest version is marked as default. This stream is used when operations do not specify a particular stream and a different stream has not been previously enabled.
For simplicity, you can also think of module streams as virtual repositories in the Application Stream physical repository.
Example 1.1. postgresql module streams
The postgresql module provides the PostgreSQL database versions 9.6.10 and 10.3 in streams 9.6 and 10, respectively. 10 is currently the default stream.
Each module can have one or more profiles. A profile is a list of certain packages to be installed together for a particular use-case such as for a server, client, development, minimal install, or other. At the same time, profiles are also a recommendation by the application packagers and experts.
Installing packages by using a module’s profile is a one-time action. It does not prevent installing or uninstalling any of the packages provided by the module. This also means that it is possible to install packages by using multiple profiles of the same module without any further preparatory steps.
The package list of a module can contain packages outside the module stream, usually from BaseOS or stream’s dependencies.
Modules in Application Stream always have a default profile which is used for installing when no other profile is explicitly specified.
Example 1.2. httpd module profiles
The httpd module providing the Apache web server offers the following profiles for installation:
default- a hardened production-ready deployment
devel- the packages necessary for making modifications to
minimal- the smallest set of packages that will provide a running webserver
1.4. YUM usage
The YUM package management tool has been updated and adds support for the new modular features of Application Stream based on the DNF technology.
There are no changes to established uses and commands of the
yum tool. Where required, the new modular functionality is transparently used to achieve the same functionality as previously available. For example, installing a package from a default module stream enables the stream in order to receive updates from it.
For handling the modular content, the
yum module command has been added. See the following chapters for additional details.