Many have noticed a general lack of modules in Red Hat Enterprise Linux (RHEL) 9. There was only a single module in the Beta release, and none in the initial release, leading many to question the current status and plans for modules in general.

In this article we will delve into a bit of history as to how modules have been used, some of the lessons learned during their initial adoption, and what you can expect from RHEL 9.

Application streams

With RHEL 8, a new concept was introduced in the form of application streams. A common use-case for application streams is to allow the introduction of newer versions of popular applications at a faster pace than had been seen previously with RHEL releases. These are introduced as new streams that are supported for a predefined period of time.

[Read more: Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal]

This type of application stream release has led many to infer that modules are one and the same. In actuality, modules are a packaging format technology. They are just one of the forms that application streams can take, as there are quite a few others, including:

  • Traditional RPMs
  • Modules
  • Flatpaks
  • Software Collections

The packaging format selected for a given application stream is selected primarily based on the best fit for the component, the duration of support and upstream community plans.

Modules are used when they are the best technology for the job. If another format is more beneficial, that is the format used.

Modules

As mentioned above, a common need is to allow different application streams to be supported for overlapping periods of time. In the traditional RPM case, this is difficult to achieve as the newest version will be selected. That must be avoided as many major versions of software are not inherently backwards compatible. In the event that a database was updated between major versions during a routine update, it could mean an outage, or worse.

With RHEL 7, the format preferred was software collections (SCL). If you needed to install multiple versions at the same time, these were excellent. If you wanted to select a specific version to be the only one installed, they could be suboptimal.

When you do not need multiple versions installed or running at the same time, modules are ideal. By building specific major versions of software together as a module, and enhancing the package management tooling to understand these, multiple versions are simultaneously available and end users could select which version they needed while maintaining system updates. No need to use “scl enable” commands as the version used is selected at installation time!

This leads to some questions.

Why are there so few modules in RHEL 9?

The response from customers has been overwhelmingly positive regarding application streams, yet there are always improvements to be made. One of the improvements identified early was to identify the full life streams (the same life cycle as RHEL 9) as early as possible, allowing customers to incorporate this type of low-level planning information into their adoption plans much earlier in the release.

Another improvement was driven by the desire to have a simple distinction between which versions would be supported for the full life of the RHEL release, versus those that would be supported for a shorter duration.

To meet this need, wherever possible, a particular version is being identified as the full life version of an application for initial release. The second improvement being that this version is being released as a traditional RPM as opposed to a module. This means that users and developers that choose to rely solely on these full life application streams can omit module-specific tooling and processes.

Will there ever be modules in RHEL 9?

Yes. Going forward, as additional major versions of application streams are identified as necessary, subsequent RHEL 9 releases will release additional application streams with shorter support durations. In the event that there is an overlap and conflict between versions, modules will be the mechanism used when it is the best fit for the application.

How does that work?

RHEL 9 will not include any default module streams. Without being enabled, module streams supersede traditional RPMs. So by releasing a single stream as traditional RPMs, but offering modular streams at a later date, you end up with the best of both worlds.

The traditional RPM version will be used when not specifically enabled otherwise, easing the user experience by further simplifying the package management process.

Continually improving

With RHEL 9 we have improved the module user experience based on our experience with software collections, modules in RHEL 8, and feedback from our customers.

Learn more


저자 소개

UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Virtualization icon

가상화

온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래