EL 8: BaseOS and AppStream
EL 8 redesigned the distribution’s repository layout: one “system” repository, BaseOS, plus one “application” repository, AppStream. The goal of the split is to keep the core system on its ten-year stability promise while letting application components update faster — even several major versions in parallel. Module streams were born inside AppStream, and retired in EL 10.
What changed
Section titled “What changed”- BaseOS: kernel, systemd, glibc, base tools — the operating system proper. Its lifecycle matches the release (10 years), with security and bug fixes only.
- AppStream: language runtimes, databases, web servers, and other application components, offered in two forms:
- plain RPM packages (most software);
- module streams: several major versions of one piece of software in parallel (such as
postgresql:10/postgresql:13), selected withdnf module enable.
User-visible changes: dnf repolist shows two main repositories; images and Kickstart files must enable both; and “before installing, think whether you need to enable a module” became daily life in the EL 8/9 era.
EL 7 vs EL 8
Section titled “EL 7 vs EL 8”| Item | EL 7 | EL 8 |
|---|---|---|
| Repository layout | single main repository | BaseOS + AppStream |
| Multiple app versions | via SCL (separate install) | AppStream module streams (built in) |
| Version-selection command | none | dnf module list/enable |
| Core-system update promise | mixed | BaseOS on its own long cycle |
What it means for you
Section titled “What it means for you”- Images / Kickstart / offline mirrors: mirroring only BaseOS leads to “the OS installed fine but nginx will not”; offline repositories must sync both.
- Multi-version needs: module streams on EL 8/9; after modularity retires on EL 10, versioned packages and third-party repositories take over (see EL 10: Module streams retired).
- Lifecycle awareness: some AppStream components have lifecycles shorter than the release itself (certain runtimes are supported only up to some minor release); check the component lifecycle, not just the release’s.
Checking and using
Section titled “Checking and using”dnf repolistdnf module listdnf module list postgresqlsudo dnf module enable postgresql:13sudo dnf install postgresql-serverFurther reading
Section titled “Further reading”- Repositories — repository configuration and offline mirrors in practice
- EL 10: Module streams retired — how the modularity story ends
- EL 8: A new toolchain — the toolchain refresh in the same release
- EL version timeline — lifecycles of every release