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 yum with dnf without 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, grouplist and groupinstall 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.