Linux Distributions¶
On the previous page you learned that Linux is just a kernel. This page explains how that kernel is packaged into a complete, installable operating system — a distribution — and how to pick the right one for a production server and identify the one you're already on.
Tested on
AlmaLinux 9.4. Distro-identification commands are portable; package-manager examples are noted per family.
What is a distribution?¶
A distribution ("distro") is a complete operating system built around the Linux kernel. Anyone could assemble a working system from the raw kernel plus thousands of separate programs, but that would be enormous, error-prone work. A distribution does it for you and adds the glue that makes it maintainable.
A distro is essentially:
- The Linux kernel (often a specific, vendor-tuned version).
- A package manager — the tool that installs, updates, and removes software and resolves dependencies. This is the single most defining characteristic of a distro family.
- A curated set of packages — a tested, signed collection of software in repositories.
- Default tooling and configuration — init system (almost always
systemdtoday), firewall, installer, default shell, directory layout. - A release and support policy — how often new versions ship and how long each is supported with security patches.
Two distros can run the exact same kernel version yet feel completely different because of these choices.
The major distribution families¶
Most distros descend from a handful of families. Knowing the family tells you the package manager, config conventions, and update style.
RHEL family — dnf / rpm¶
The enterprise standard, built on the RPM package format. The package manager is dnf (the successor to yum); rpm is the low-level tool underneath.
- Red Hat Enterprise Linux (RHEL) — the commercial, subscription-supported flagship. Stable, certified, 10-year lifecycle. Common in banks, telcos, and large enterprises.
- CentOS Stream — Red Hat's rolling preview that sits just ahead of the next RHEL minor release. It's upstream of RHEL, not a downstream clone — generally not recommended as a stable production base.
- AlmaLinux — a free, community-driven, 1:1 binary-compatible rebuild of RHEL. A popular drop-in replacement after the CentOS Linux discontinuation. This site's primary target.
- Rocky Linux — another free, bug-for-bug RHEL rebuild, founded by a CentOS co-founder. Functionally interchangeable with AlmaLinux for most purposes.
- Fedora — the fast-moving community distro that serves as the upstream proving ground for future RHEL. Cutting-edge, ~6-month releases; great for workstations, less so for long-lived servers.
Debian family — apt / dpkg¶
Built on the .deb package format. The high-level manager is apt; dpkg is the low-level tool.
- Debian — the venerable, fiercely independent, community distro. Rock-solid "Stable" releases; the foundation many others build on.
- Ubuntu — Debian-based, backed by Canonical. The most popular Linux on desktops and cloud images, with predictable LTS releases.
SUSE / openSUSE — zypper¶
- SUSE Linux Enterprise (SLES) — commercial enterprise distro, strong in European enterprise and SAP workloads.
- openSUSE Leap (stable, point releases) and openSUSE Tumbleweed (rolling). The package manager is
zypper(also RPM-based).
Arch — pacman¶
- Arch Linux — a minimalist, rolling-release distro you build up yourself. The package manager is
pacman. Excellent documentation (the Arch Wiki), but the do-it-yourself, always-latest model suits experienced users and workstations more than hands-off servers.
Alpine — apk¶
- Alpine Linux — tiny, security-focused, built on
musllibc and BusyBox instead of GNU tools. The package manager isapk. A full base image is only a few megabytes, which is why Alpine dominates container images.
Comparison table¶
| Family | Distros | Package manager | Package format | Default release model |
|---|---|---|---|---|
| RHEL | RHEL, AlmaLinux, Rocky, CentOS Stream, Fedora | dnf (rpm) |
.rpm |
Point release / LTS (Fedora: short cycle) |
| Debian | Debian, Ubuntu | apt (dpkg) |
.deb |
Point release / LTS |
| SUSE | SLES, openSUSE Leap/Tumbleweed | zypper |
.rpm |
Point release / rolling |
| Arch | Arch, Manjaro | pacman |
.pkg.tar.zst |
Rolling |
| Alpine | Alpine | apk |
.apk |
Point release |
Note
"RPM-based" and "Debian-based" describe the package format, not the distro lineage. SUSE and RHEL both use RPM but are unrelated families with different package managers (zypper vs dnf).
Release models¶
How a distro ships new versions matters more than almost anything else for a server.
- Point release (fixed/stable) — versioned releases (e.g. AlmaLinux 9.4, Debian 12). Within a release, you get only security and bug fixes; major versions change rarely. Predictable and ideal for servers.
- LTS (Long-Term Support) — a point release with an extended support window (Ubuntu LTS: 5 years free, more with extended support; RHEL/Alma/Rocky: 10 years). The default choice for production.
- Rolling release — there are no big version jumps; packages update continuously to the latest upstream (Arch, openSUSE Tumbleweed). Always current, but more frequent change means more chances for surprises — better suited to workstations than critical servers.
How to choose a distro for production servers¶
For a real production server, prioritize boredom and predictability over novelty:
- Long support lifecycle. You don't want to re-platform every year. RHEL/AlmaLinux/Rocky give 10 years; Ubuntu LTS gives 5+.
- Stability over freshness. A point-release or LTS distro that ships security backports beats a rolling distro for uptime-critical systems.
- Vendor and community support. Is there a paid support option if you need it? Is the community active? Are CVEs patched quickly?
- Ecosystem and documentation. Most enterprise software, hardware vendors, and certifications target RHEL or Ubuntu first.
- Team familiarity. The distro your team already knows how to secure and operate is usually the right one.
A safe default
For RHEL-style enterprise servers, AlmaLinux 9 or Rocky Linux 9 give you free, 10-year, RHEL-compatible systems. For the Debian world, Ubuntu Server LTS or Debian Stable are excellent. For containers, base your images on Alpine or a slim distro image.
How to identify your current distro¶
When you SSH into an unfamiliar box, identify it before you touch anything — the package manager and conventions depend on it.
NAME="AlmaLinux"
VERSION="9.4 (Seafoam Ocelot)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.4"
PRETTY_NAME="AlmaLinux 9.4 (Seafoam Ocelot)"
PLATFORM_ID="platform:el9"
The ID_LIKE line is gold: it tells you the family, so you know ID_LIKE="rhel ..." means dnf, while ID_LIKE=debian means apt.
Static hostname: web01
Icon name: computer-vm
Operating System: AlmaLinux 9.4 (Seafoam Ocelot)
CPE OS Name: cpe:/o:almalinux:almalinux:9::baseos
Kernel: Linux 5.14.0-427.13.1.el9_4.x86_64
Architecture: x86-64
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: AlmaLinux
Description: AlmaLinux release 9.4 (Seafoam Ocelot)
Release: 9.4
Codename: SeafoamOcelot
If lsb_release is missing
Minimal AlmaLinux/RHEL 9 installs often omit it. Prefer /etc/os-release (always present) or install it with sudo dnf install redhat-lsb-core (Debian/Ubuntu: sudo apt install lsb-release).
Verify your work¶
# 1. What distro and version is this, machine-readably?
cat /etc/os-release
# 2. Which family is it (drives which package manager to use)?
grep -E '^(ID|ID_LIKE)=' /etc/os-release
# 3. Confirm the matching package manager exists
command -v dnf apt zypper pacman apk 2>/dev/null
# 4. One-line OS + kernel summary
hostnamectl | grep -E 'Operating System|Kernel'
You should now be able to walk up to any Linux box and answer: Which distro, which family, which package manager, and what's its support model?
Summary¶
- A distribution = the Linux kernel + a package manager + curated packages + default tooling + a release policy.
- The package manager is the defining trait:
dnf/rpm(RHEL),apt/dpkg(Debian/Ubuntu),zypper(SUSE),pacman(Arch),apk(Alpine). - Release models: point release / LTS (predictable, best for servers) vs rolling (always current, better for workstations).
- For production servers, favor long support, stability, and team familiarity — AlmaLinux/Rocky 9 or Ubuntu/Debian LTS are safe defaults; Alpine for containers.
- Identify any system with
cat /etc/os-release,hostnamectl, orlsb_release -a. - Next: actually installing Linux.