Red Hat Enterprise Linux 8.0 Beta: Using Application Stream
Red Hat Enterprise Linux 8.0 Beta: Using Application Stream
0 Beta
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons
Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is
available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must
provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,
Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity
logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other
countries.
Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and
other countries.
Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to
or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks
or trademarks/service marks of the OpenStack Foundation, in the United States and other countries
and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or
sponsored by the OpenStack Foundation, or the OpenStack community.
Abstract
This document describes searching, discovering, installing, and using content in the Application
Stream in Red Hat Enterprise Linux 8.0 Beta. This includes a description of how to use modules,
streams and profiles.
Table of Contents
Table of Contents
. . . . . IS
THIS . .A
. . BETA
. . . . . .VERSION!
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . .
. . . . . . . . . . . FEEDBACK
PROVIDING . . . . . . . . . . .ON
. . .RED
. . . . HAT
. . . . DOCUMENTATION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . .
. . . . . . . . . .1.. .USING
CHAPTER . . . . . .APPLICATION
. . . . . . . . . . . . .STREAM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . .
1.1. DISTRIBUTION OF CONTENT IN RHEL 8 5
1.2. TYPES OF CONTENT IN APPLICATION STREAM 5
1.3. MODULES, STREAMS, AND PROFILES IN APPLICATION STREAM 5
1.4. YUM USAGE 6
.CHAPTER
. . . . . . . . .2.. .DISCOVERING
. . . . . . . . . . . . .CONTENT
. . . . . . . . . IN
. . APPLICATION
. . . . . . . . . . . . . STREAM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . .
2.1. SEARCHING FOR A PACKAGE 8
2.2. LISTING AVAILABLE MODULES 8
2.3. EXAMPLE: FINDING OUT DETAILS ABOUT A MODULE 9
2.4. COMMANDS FOR LISTING CONTENT 11
.CHAPTER
. . . . . . . . .3.. .INSTALLING
. . . . . . . . . . . CONTENT
. . . . . . . . . FROM
. . . . . . APPLICATION
. . . . . . . . . . . . .STREAM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
...........
3.1. INSTALLING A PACKAGE 13
3.2. INSTALLING A MODULE 13
3.3. RUNNING INSTALLED CONTENT 14
3.4. EXAMPLE: INSTALLING A NON-DEFAULT STREAM OF AN APPLICATION 14
3.5. COMMANDS FOR INSTALLING CONTENT FROM APPLICATION STREAM 15
. . . . . . . . . .4.. .MANAGING
CHAPTER . . . . . . . . . . VERSIONS
. . . . . . . . . . OF
. . . APPLICATION
. . . . . . . . . . . . .STREAM
. . . . . . . .CONTENT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
...........
4.1. MODULAR DEPENDENCIES AND STREAM CHANGES 17
4.2. INTERACTION OF MODULAR AND NON-MODULAR DEPENDENCIES 17
4.3. REMOVING INSTALLED MODULES 18
4.4. SWITCHING MODULE STREAMS 18
1
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
2
THIS IS A BETA VERSION!
Beta code should not be used with production data or on production systems.
Feedback and bug reports are welcome. Discussions with your account representative, partner
contact, and Technical Account Manager (TAM) are also welcome.
3
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
For simple comments on specific passages, make sure you are viewing the documentation in
the Multi-page HTML format. Highlight the part of text that you want to comment on. Then, click
the Add Feedback pop-up that appears below the highlighted text, and follow the displayed
instructions.
3. Fill in the Description field with your suggestion for improvement. Include a link to the
relevant part(s) of documentation.
4
CHAPTER 1. USING APPLICATION STREAM
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.
BaseOS
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.
IMPORTANT
Both BaseOS and AppStream are a necessary part of a Red Hat Enterprise Linux system.
Modules
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.
5
Red Hat Enterprise Linux 8.0 Beta Using 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.
Module streams
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.
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.
Module profiles
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.
The httpd module providing the Apache web server offers the following profiles for installation:
minimal - the smallest set of packages that will provide a running webserver
6
CHAPTER 1. USING APPLICATION STREAM
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.
7
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
Section 2.1, “Searching for a package” describes how to search for packages providing desired
content.
Section 2.2, “Listing available modules” describes how to list available modules and find out
details about them.
Section 2.3, “Example: Finding out details about a module” contains an example of steps
needed to examine a module in more detail.
Section 2.4, “Commands for listing content” provides a reference of the commands useful for
inspecting content in Application Stream.
Prerequisites
Procedure
Procedure
The output of this command lists module streams with name, stream, profiles, and summary on
a separate line.
2. Display details about a module, including a description, a list of all profiles, and a list of all
provided packages:
8
CHAPTER 2. DISCOVERING CONTENT IN APPLICATION STREAM
3. Optional: If desired, display details about packages installed by each of module’s profiles:
4. Display the current status of a module, including enabled streams and installed profiles:
Additional resources
Procedure
9
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
Stream : 7.1
Version : 820181025145012
Context : 76554e01
Profiles : devel, minimal, default [d]
Default profiles : default
Repo : appstream-8
Summary : PHP scripting language
Description : php 7.1 module
Artifacts : apcu-panel-0:5.1.11-1.el8+1543+e18ce76f.noarch
: libzip-0:1.5.1-1.el8+1543+e18ce76f.x86_64
: libzip-devel-0:1.5.1-1.el8+1543+e18ce76f.x86_64
: libzip-tools-0:1.5.1-1.el8+1543+e18ce76f.x86_64
: php-0:7.1.20-2.el8+1700+11d526eb.x86_64
: php-bcmath-0:7.1.20-2.el8+1700+11d526eb.x86_64
(...)
Because no stream is specified, all streams are used for the listing.
Each of the profiles installs a certain set of packages, including their dependencies.
4. Install the php module using the default stream 7.2 and profile default:
10
CHAPTER 2. DISCOVERING CONTENT IN APPLICATION STREAM
Transaction Summary
====================================================================
===========
Install 3 Packages
The stream 7.2 is enabled and packages in its profile default installed.
The output shows that the default stream 7.2 is enabled and its profile default is installed.
Command list
11
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
If the package is available outside any modules, the output of this command is empty.
12
CHAPTER 3. INSTALLING CONTENT FROM APPLICATION STREAM
Section 3.2, “Installing a module” describes steps to install sets of packages provided by
modules.
Section 3.3, “Running installed content” provides details for running content installed from
Application Stream.
Section 3.5, “Commands for installing content from Application Stream” provides a reference of
commands useful for installing content from Application Stream.
Prerequisites
Procedure
If the package is not provided by any module, this procedure is identical to the procedure
used on previous versions of Red Hat Enterprise Linux.
If the package is provided by a module stream marked as default, the yum tool automatically
transparently enables that module stream before installing this package.
If the package is provided by a module stream not marked as default, it is not recognized
until you manually enable the respective module stream.
Additional resources
13
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
Procedure
This installs the recommended set of packages for a given stream (version) and profile
(purpose) of the module.
Omit /profile to use the default profiles. Additionally, omit :stream to use the default stream.
Additional resources
$ command
More specifically, this example shows how to install the PostgreSQL server (package postgresql-
server) in version 9.6, while the default stream provides version 10.
Procedure
1. List modules that provide the postgresql-server package to see what streams are available:
The output shows that the postgresql module is available with streams 10 and 9.6. The default
stream is 10.
14
CHAPTER 3. INSTALLING CONTENT FROM APPLICATION STREAM
============
Package Arch Version
Repository Size
====================================================================
============
Installing group/module packages:
postgresql-server x86_64 9.6.10-1.el8+1547+210b7007
appstream-8 5.0 M
Installing dependencies:
libpq x86_64 10.5-1.el8
appstream-8 188 k
postgresql x86_64 9.6.10-1.el8+1547+210b7007
appstream-8 1.4 M
Installing module profiles:
postgresql/default
Enabling module streams:
postgresql 9.6
Transaction Summary
====================================================================
============
Install 3 Packages
Because the installation profile was not specified, the default profile was used.
$ postgres --version
postgres (PostgreSQL) 9.6.8
Command list
Install a package
If the package is provided by a module stream, yum resolves the required module stream, and
enables it automatically while installing this package. This happens recursively for all package
dependencies, too. If more module streams satisfy the requirement, the default ones are used.
15
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
Enable the module when you wish to make the packages available to the system but do not, at this
time, wish to install any of them.
Some modules may not define default streams. In such case, you must explicitly specify the stream.
If the module defines a default stream, you can omit the stream and colon.
Alternatively:
CAUTION
Alternatively:
Alternatively:
16
CHAPTER 4. MANAGING VERSIONS OF APPLICATION STREAM CONTENT
After any operations with packages or modules, the whole dependency tree of all underlying installed
packages must satisfy all the conditions the packages declare. Additionally, all module stream
dependencies must be satisfied.
As a result:
Installing a module stream profile or installing packages from a stream can require enabling
streams of further modules and installing further packages.
Disabling a stream of a module can require disabling other module streams. No packages will be
removed automatically.
Removing a package can require removing further packages. If these packages were provided
by modules, the module streams remain enabled in preparation for further installation, even if no
packages from these streams are installed any more. This mirrors the behavior of an unused
yum repository.
Switching the stream enabled for a module is equivalent to resetting the current stream and
enabling the new stream. This action does not automatically change any installed packages.
Removing the packages provided by the previous stream and any packages that depend on
them, and installation of the packages in the new stream are explicit manual operations.
Directly installing a different stream of a module than the currently installed one is not
recommended, due to potential upgrade scripts run during the installation.
Because some of the operations may require careful consideration, changing the enabled module
streams does not automatically manipulate packages, so that the user has a complete control over the
changes. The yum tool always provides a summary of the actions to do.
17
Red Hat Enterprise Linux 8.0 Beta Using Application Stream
Dependence of non-modular packages on modular ones is used in Application Stream only when the
modular package is provided by a module stream marked as default.
For modular packages depending on non-modular ones, the system will always retain the module and
stream choices, unless explicitly instructed to change them. A modular package will receive updates
contained in the currently enabled stream of the module that provides this package, but will not upgrade
to a version contained in a different stream.
Packages installed from this module stream not listed in any of its profiles remain installed on the system
and can be removed manually.
Prerequisites
A module which you want removed must have already installed some profiles.
Procedure
This removes all packages installed from this module. The yum tool will present a summary of
the changes and ask for confirmation.
The yum tool will present a summary of the changes and ask for confirmation.
3. Finally, remove manually any packages that you installed from the module stream:
The yum tool will present a summary of the changes and ask for confirmation.
Prerequisites
18
CHAPTER 4. MANAGING VERSIONS OF APPLICATION STREAM CONTENT
Prerequisites
A module stream must be enabled, and another stream of the module must exist.
Procedure
Replace module-name with name of the module, and stream with the desired stream.
The new stream wil lbe enabled and the current stream disabled.
The yum tool will present a summary of the changes and ask for confirmation. Changes to
further module streams and packages can be necessary.
2. Update or downgrade any packages installed from the previous module stream and not listed in
the profiles installed in the previous step:
# yum distro-sync
The yum tool will present a summary of the changes and ask for confirmation.
3. Finally, remove manually any packages that remained installed from the previous module
stream:
The yum tool will present a summary of the changes and ask for confirmation.
19