Files
Controls-docs/rhel8/packages.md
T

4.4 KiB

Package Management for RHEL 8

How to add packages and package repositories and what repositories are available is documented here.

Package Installation

Install Packages with Hiera Package Groups

The packages automatically installed onto a system by Puppet are managed in the Hiera list base::package_groups. It contains the names of the package groups to be installed. Items can be added at all levels of the Hiera hierarchy and are merged.

The package groups itself are Hieara lists named base::pkg_group::$USE_CASE. Here list all the packages you want to install.

Currently there exist the following package groups in the main common.yaml:

  • base::pkg_group::system_tools (installed by default)
  • base::pkg_group::daq_buffer
  • base::pkg_group::desktop_settings
  • base::pkg_group::dev
  • base::pkg_group::login_server
  • base::pkg_group::qt5
  • base::pkg_group::root

but further ones can be created in Hiera at lower hierachies and added to base::package_groups, for example

base::pkg_group::java:
    - 'java-1.8.0-openjdk'
    - 'java-11-openjdk'
    - 'java-17-openjdk'

base::package_groups:
  - 'java'

Install a Group of Packages

To add a RedHat predefined group of packages (checkout out dnf grouplist --hidden) prepend the name of it with a @, e.g. for "Java Platform" it would be @Java Platform:

base::pkg_group::java:
    - '@Java Platform'

Install Latest Package Version

To ensure that always the latest available package version is installed, append the :latest tag to the package name in the package group:

base::pkg_group::java:
    - 'java-1.8.0-openjdk'
    - 'java-11-openjdk'
    - 'java-17-openjdk:latest'

Install Packages only on Given OS Version

to be implemented

Certain packages are only used on a given OS Version, so

base::pkg_group::java:
    - 'java-1.8.0-openjdk:redhat7'
    - 'java-11-openjdk'
    - 'java-17-openjdk:redhat8'

Note that this tag can be combine with the latest and absent tag.

Remove Packages

To remove an already installed package, append the :absent tag to the package name in the package group:

base::pkg_group::java:
    - 'java-1.8.0-openjdk:absent'
    - 'java-11-openjdk'
    - 'java-17-openjdk'

Ignore Packages

To make packages unavailable for installation, even though provided by the package repositories, add them in Hiera to the list base::package_exclude:

base::package_exclude:
    - 'epics-base-7.0.6*'

Legacy Package Installation

The legacy Hiera lists for package groups is yum_client::pkg_group::$USE_CASE and supports the latest and absent tag, but not the filtering by operating system version.

Then yum_client::package_groups is the Hiera list to contain the package groups to be installed.

Please migrate them to the equivalent base::* list. You can have both of them available at the same time, with possibly the same content.

Management of Package Repositories

TBD: rpm_repos::default

Using Specific Package Repository Snapshot

TBD: rpm_repos::repo::rhel8_codeready yum_client::repo::rhel7_rhscl

Package Repositories made Available by the Linux Group

Availabe on all systems are:

Predefined and used when needed are:

  • Influx (influxdb, telegraf, ...)

To be added/defined in common.yaml?

  • CUDA
  • Epics (available for RHEL7)
  • Code (Visual Studio Code from Microsoft)
  • HashiCorp (vault, terraform, vagrant, ...)

pli-misc Repository

A small list of packages managed by the Linux Team.