RHEL7: How to get started with package groups.
Presentation
The package groups are a well-known feature of the yum command to group multiple packages under a single name.
Even though yum will be replaced with dnf in future releases of RHEL, the syntax and features will stay the same (at least this is the case in Fedora 22 where you can replace yumwith dnfwithout any problem).
Three kinds of package groups exist:
- environment package groups describe a type of global configuration containing other package groups: Minimal Install, Compute Node, Infrastructure Server, GNOME Desktop, etc.
- top-level package groups bring a set of package groups belonging to the same domain: Security Tools, Development Tools, System Administration Tools, etc.
- simple package groups contain packages on a particular topic: web-server, network-file-system-client, etc.
Also, inside a package group, there are potentially three different categories:
- mandatory package groups/packages are always installed.
- default package groups/packages are normally installed except if specified otherwise.
- optional package groups/packages are only installed on demand.
Note: While some yum subcommands groupinfo, grouplistandgroupinstall were written with only one word in RHEL 6, RHEL 7 now accepts one or two words: yum groupinfo/yum group info, yum grouplist/yum group list, yum groupinstall/yum group install, etc.
Package Group Management
To get the list of all the environment and top-level package groups, type:
# yum group list ids
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
...
Available environment groups:
Minimal Install (minimal)
Compute Node (compute-node-environment)
Infrastructure Server (infrastructure-server-environment)
File and Print Server (file-print-server-environment)
Basic Web Server (web-server-environment)
Virtualization Host (virtualization-host-environment)
Server with GUI (graphical-server-environment)
GNOME Desktop (gnome-desktop-environment)
KDE Plasma Workspaces (kde-desktop-environment)
Development and Creative Workstation (developer-workstation-environment)
Available Groups:
Compatibility Libraries (compat-libraries)
Console Internet Tools (console-internet)
Development Tools (development)
Graphical Administration Tools (graphical-admin-tools)
Legacy UNIX Compatibility (legacy-unix)
Scientific Support (scientific)
Security Tools (security-tools)
Smart Card Support (smart-card)
System Administration Tools (system-admin-tools)
System Management (system-management)
Done
Note1: By specifying the ids option, you get the system name of each package group between parenthesis. This name, called the Group ID, is easier to use because generally shorter and without any spaces. It is also the name used by Kickstart during the installation. Note2: To get the list of all the package groups, you need to add the hidden argument: # yum group list ids hidden Note3: With the Group ID, you don’t need to use the group subcommand anymore, at least for the install and remove options:
- yum install @security-tools = yum group install security-tools
- yum remove @\^web-server-environment=yum group remove web-server-environment
- the @\^ prefix is reserved for environment groups.
To list the packages in an environment group (here “Minimal Install“), type:
# yum group info "Minimal Install"
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
Environment Group: Minimal Install
Environment-Id: minimal
Description: Basic functionality.
Mandatory Groups:
+core
Optional Groups:
+debugging
Note1: The core package group contains the smallest possible installation, also called Minimal Install. Note2: The base package group, with the help of the core package group, allows to build a basic installation, also called Infrastructure Server.
To get the list of the packages belonging to a package group (here “Web Server“), type:
# yum group info "Web Server"
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
Group: Web Server
Group-Id: web-server
Description: Allows the system to act as a web server, and run Perl and Python web applications.
Mandatory Packages:
+httpd
Default Packages:
+crypto-utils
+httpd-manual
+mod_fcgid
+mod_ssl
Optional Packages:
certmonger
libmemcached
memcached
mod_auth_kerb
mod_auth_mellon
mod_nss
mod_revocator
mod_security
mod_security_crs
perl-CGI
perl-CGI-Session
python-memcached
squid
Note: The + indicates which packages will be installed.
To install a package group (here “Web Server“), type:
# yum group install "Web Server"
Now, if we request some information about the Web Server package group, we get:
# yum group info "Web Server"
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...
Group: Web Server
Group-Id: web-server
Description: Allows the system to act as a web server, and run Perl and Python web applications.
Mandatory Packages:
=httpd
Default Packages:
=crypto-utils
=httpd-manual
=mod_fcgid
=mod_ssl
Optional Packages:
certmonger
libmemcached
memcached
mod_auth_kerb
mod_auth_mellon
mod_nss
mod_revocator
mod_security
mod_security_crs
perl-CGI
perl-CGI-Session
python-memcached
squid
Note: The = indicates installed packages as a part of the package group.
To install all the packages belonging to a package group (here “Web Server”), type:
# yum --setopt=group_package_types=mandatory,default,optional groupinstall "Web Server"
Source: RHEL 7 System Administrator’s guide.
Leave a comment