Posted on
Administration

Managing modular content in RHEL8+

Author
  • User
    Linux Bash
    Posts by this author
    Posts by this author

Managing Modular Content in RHEL 8 and Beyond: A Guide for System Administrators

Red Hat Enterprise Linux (RHEL) 8 introduced a groundbreaking approach to package management and software delivery by integrating the concept of "modularity." This concept allows users to have multiple versions of a software application available in the repository, providing greater flexibility and control over versioning and updates. As modular content becomes increasingly central in RHEL environments, understanding how to manage these modules efficiently is crucial.

In this blog post, we'll explore how to manage modular content in RHEL 8+, and we'll also provide instructions for different package managers including dnf, as well as a brief look at apt and zypper, which are used in Ubuntu/Debian and SUSE Linux environments, respectively.

Understanding Modularity in RHEL 8+

Modularity in RHEL allows users to install different versions of applications and packages without getting into "dependency hell." It can be incredibly useful in cases where certain applications require different versions of dependencies, or when users need to test software under various versions of dependencies.

Modules are collections of packages that represent a component and its dependencies. These modules can be enabled, disabled, installed, or removed using the RHEL package manager, dnf.

Managing Modules with DNF

dnf is the default package management tool in RHEL 8, replacing yum from RHEL 7. DNF stands for Dandified YUM, and it's designed to offer faster and more consistent package management.

1. Listing Available Modules

To see the available modules, use:

dnf module list

2. Enabling a Module

Before you can install packages from a module, you need to enable the module:

dnf module enable <module-name>:<stream>

For example, if you want to enable nodejs with version 12:

dnf module enable nodejs:12

3. Installing Modules

Once a module is enabled, you can install it using:

dnf module install <module-name>:<stream>

4. Resetting Modules

If you change your mind, you can reset the module state back to the default:

dnf module reset <module-name>

5. Disabling Modules

To disable a module, ensuring that it won't affect your system updates or package installations:

dnf module disable <module-name>

Package Management with Apt and Zypper

While RHEL 8 uses dnf, knowing how to handle packages in other Linux distributions can be beneficial.

Managing Packages in Debian/Ubuntu with Apt

apt is the package manager used in Debian and its derivatives like Ubuntu. Here’s a quick primer on using apt:

  • Update package index: sudo apt update

  • Install packages: sudo apt install <package-name>

  • Remove packages: sudo apt remove <package-name>

Managing Packages in SUSE with Zypper

SUSE and its derivative openSUSE use zypper:

  • Refresh repositories: sudo zypper refresh

  • Install packages: sudo zypper install <package-name>

  • Remove packages: sudo zypper remove <package-name>

Conclusion

RHEL 8's modular content feature brings a novel and efficient way to manage packages and dependencies. By allowing administrators to select specific versions of software, it enables more sophisticated control and compatibility management across even complex environments. For users rooted in Debian or SUSE ecosystems, understanding similar package managers like apt and zypper also proves beneficial for managing a diverse set of server and desktop environments.