EL 8: A new toolchain
EL 7 served an exceptionally long tour (2014–2024), so EL 8’s generational gap is unusually wide: the kernel jumps from 3.10 to 4.18, GCC from 4.8 to 8, Python from 2.7 to 3.6, glibc from 2.17 to 2.28, and OpenSSL from 1.0.2 to 1.1.1. Even the yum command itself becomes a front end for DNF.
What changed
Section titled “What changed”- Python 2 → 3: EL 8 no longer provides
/usr/bin/pythonby default; system tooling moves fully to Python 3.6, with Python 2 kept only as thepython2package for legacy scripts. This is where the EL ecosystem starts saying goodbye to Python 2. - yum → DNF: the
yumcommand stays, but the backend becomes DNF (libsolv dependency solving, more reliable transactions, C++ implementation). Everyday syntax is unchanged; the yum plugin ecosystem must move to dnf plugins. - GCC 8 / glibc 2.28: a higher default C++ standard and new warnings; glibc brings more complete C11 threads and thread-local storage support.
- OpenSSL 1.1.1: TLS 1.3 enters the default stack, laying the groundwork for the later crypto policies.
- Kernel 4.18: substantially stronger eBPF capabilities and a wider new-hardware support surface.
EL 7 vs EL 8
Section titled “EL 7 vs EL 8”| Component | EL 7 | EL 8 | Notes |
|---|---|---|---|
| kernel | 3.10 | 4.18 | |
| GCC | 4.8 | 8 | |
| glibc | 2.17 | 2.28 | |
| Python (system) | 2.7 | 3.6 | /usr/bin/python absent by default |
| OpenSSL | 1.0.2 | 1.1.1 | TLS 1.3 |
| Package manager front end | yum (yum3) | yum → DNF front end | command-compatible |
For current versions per distribution, see the package version matrix.
What it means for you
Section titled “What it means for you”- Python 2 scripts: scripts with a
#!/usr/bin/pythonor#!/usr/bin/env pythonshebang find no interpreter on EL 8; switch the shebang topython3, or installpython2and name it explicitly. - yum plugins and wrappers: anything relying on yum’s Python API stops working; move to dnf plugins or the
dnfCLI. - In-house C/C++: GCC 8’s new default warnings and glibc symbol changes may require rebuild validation.
- TLS peers: 1.1.1 disables some old cipher suites by default; handshakes with very old clients and devices need evaluation.
Checking and adapting
Section titled “Checking and adapting”uname -rgcc --version | head -1python3 --versionls -l /usr/bin/python 2>&1 # absent by default on EL 8- Scan repositories for
#!/usr/bin/pythonshebangs and yum plugin dependencies; - Rebuild in-house components in an EL 8 environment;
- Run a connectivity regression for TLS handshakes with legacy devices.
Further reading
Section titled “Further reading”- Package version matrix — full version tables
- DNF basics — DNF commands and repository management
- EL 8: BaseOS and AppStream — the repository-structure revolution in the same release
- EL 9: A new toolchain — the next generation’s refresh