Chapter 02Lesson 01~45 minutes

Choosing Ubuntu, Debian, Fedora, Rocky Linux, or AlmaLinux

A Linux lab should be predictable enough for learning, representative enough for production skills, and easy to reset. This lesson compares five widely used distributions and turns that comparison into a defensible lab choice.

BeginnerLab designDistribution choice

Learning objectives

By the end of this lesson

  • Compare Ubuntu, Debian, Fedora, Rocky Linux, and AlmaLinux by family, lifecycle, package tooling, and operational defaults.
  • Distinguish a fast-moving development distribution from a long-lived production-oriented distribution.
  • Choose a primary course distribution without assuming it is universally best.
  • Plan a secondary compatibility lab for cross-distribution practice.
  • Document the choice as an explicit, revisable engineering decision.

1. Choose for the workload, not the logo

All five distributions can teach Linux fundamentals. The meaningful differences appear in package management, release cadence, defaults, vendor or community support, security policy, documentation, cloud images, and how closely the lab resembles a target production environment.

Learning fidelity

Does the lab expose the right concepts?

A full system should support users, services, logs, networking, storage, SSH, and security controls—not only shell commands.

Operational stability

Will examples remain reproducible?

A supported fixed release reduces unexpected package and interface changes while the course progresses.

Environment relevance

Does it match likely production systems?

Cloud images, enterprise fleets, container hosts, and CI runners often standardize on a distribution family.

Recommended course pattern

Use one stable primary distribution for most labs and one secondary distribution from another family for compatibility exercises. Depth on one system plus deliberate comparison is more useful than shallow work on five systems.

2. The five distributions belong to two main families

Distribution relationships relevant to this course
flowchart TB
  L["Linux kernel and upstream projects"] --> D["Debian family"]
  L --> R["Red Hat family"]
  D --> DEB["Debian"]
  D --> UBU["Ubuntu"]
  R --> FED["Fedora"]
  R --> ENT["Enterprise-compatible ecosystem"]
  ENT --> ROC["Rocky Linux"]
  ENT --> ALM["AlmaLinux"]
  DEB --> APT["deb packages and APT"]
  UBU --> APT
  FED --> RPM["RPM packages and DNF"]
  ROC --> RPM
  ALM --> RPM

The family distinction matters because package names, package managers, repository configuration, default security controls, and some file locations differ. Core concepts—processes, permissions, systemd, TCP/IP, filesystems, SSH, and Bash—transfer across both families.

3. Operational profiles

DistributionStrength for this academyTrade-off to understand
Ubuntu LTSBroad tutorials, cloud availability, straightforward installation, stable multi-year baseUbuntu-specific tooling and packaging choices are not universal
Debian stableConservative, community-governed base with direct exposure to Debian conventionsPackage versions may be older than fast-moving development stacks expect
FedoraCurrent kernels, compilers, system components, and early exposure to technologies later used in enterprise LinuxShorter lifecycle requires regular upgrades and more change tolerance
Rocky LinuxEnterprise-compatible administration, long lifecycle, RPM/DNF, SELinux-first operationsConservative packages can require containers or external repositories for newer developer tools
AlmaLinuxEnterprise-compatible platform with long lifecycle, cloud images, RPM/DNF, and SELinuxLike Rocky Linux, the base prioritizes lifecycle stability over newest upstream versions

4. Release cadence changes operational risk

Long-lived

Ubuntu LTS

A new LTS arrives on a regular multi-year cadence and receives a long standard maintenance window. It is a practical default for reproducible learning and many cloud workloads.

Stable branch

Debian stable

Debian promotes a tested release to stable and maintains stable, testing, and unstable branches for different purposes.

Fast fixed releases

Fedora

Fedora releases frequently and maintains only a limited set of recent releases, making upgrades part of normal operation.

Enterprise lifecycle

Rocky and AlmaLinux

Major versions target long-lived server fleets and compatibility with the enterprise Linux ecosystem.

“Stable” does not mean unchanged. Supported distributions still deliver security updates and selected bug fixes. The difference is how aggressively feature versions and interfaces move during the release lifetime.

5. A practical selection matrix

QuestionPreferReason
First complete Linux lab?Ubuntu LTS or Debian stableAccessible installation, documentation, and predictable package base
Targeting RHEL-like production?Rocky Linux or AlmaLinuxRPM/DNF, SELinux, and enterprise-family conventions
Testing current Linux technologies?FedoraNewer kernels and user-space components with a faster lifecycle
Minimal vendor influence?DebianLarge community project and conservative stable release
Cloud tutorial compatibility?Ubuntu LTS, plus a Red Hat-family secondary VMWide cloud availability while retaining cross-family practice
Do not choose an end-of-life release

An unsupported release no longer receives normal security updates. Before installing any version, verify its lifecycle on the distribution’s official site rather than relying on an old tutorial.

6. Inspect a candidate image before committing

After booting any candidate, collect the facts that affect course compatibility. These commands are read-only.

printf '=== identity ===\n'
cat /etc/os-release
uname -srmo

printf '\n=== package tooling ===\n'
for tool in apt apt-get dpkg dnf rpm; do
  if command -v "$tool" >/dev/null 2>&1; then
    printf '%-8s %s\n' "$tool" "$(command -v "$tool")"
  fi
done

printf '\n=== init and security ===\n'
ps -p 1 -o pid,comm,args
command -v systemctl || true
command -v getenforce >/dev/null && getenforce || true
command -v aa-status >/dev/null && aa-status 2>/dev/null | head || true

printf '\n=== architecture and virtualization ===\n'
uname -m
systemd-detect-virt 2>/dev/null || true

Do not infer the distribution from the kernel version alone. Cloud and container images may run a kernel supplied by the host while presenting a different user-space distribution.

7. Hands-on lab: write a distribution decision record

Create a short, version-controlled decision record rather than silently choosing a platform. The example recommends Ubuntu LTS as the primary lab and an enterprise-compatible distribution as the secondary lab; change the values when your production target differs.

lab="$HOME/devops-academy/linux/chapter02/lesson01"
mkdir -p "$lab"
cd "$lab"

cat > distribution-decision.md <<'EOF'
# Linux Lab Distribution Decision

## Decision
- Primary lab: Ubuntu LTS
- Secondary compatibility lab: Rocky Linux or AlmaLinux

## Required capabilities
- systemd and journalctl
- A package manager with signed repositories
- SSH server support
- Snapshots or exportable machine state
- x86_64 or ARM64 compatibility with the host

## Reasons
- Stable, supported primary environment for reproducible lessons
- Broad documentation and cloud-image availability
- Secondary RPM/DNF and SELinux practice

## Risks and mitigations
- Distribution-specific commands: label commands by family
- Package-version differences: record versions in lab reports
- Lifecycle expiration: review support status before each major chapter

## Review trigger
Review this decision when the target production platform changes or the
selected release approaches end of support.
EOF

cat distribution-decision.md

Verification checklist

8. Common selection mistakes

Choosing the newest version automatically

Fresh packages can be useful, but short lifecycles and frequent change increase maintenance work.

Assuming enterprise-compatible means identical

Rocky Linux, AlmaLinux, and commercial enterprise distributions pursue compatibility, but governance, repositories, support services, and release details can differ.

Using only minimal containers for a system course

Minimal images hide boot, service supervision, storage, kernel, and full networking behavior required later.

Learning only one package family

Professional DevOps work benefits from recognizing both APT/deb and DNF/RPM conventions.

9. Knowledge check

Question 1. Why is Ubuntu LTS a reasonable default for this course but not a universal answer?

Question 2. What is the strongest reason to maintain a secondary distribution lab?

Question 3. Why must support lifecycle be checked before installation?

10. Summary

Distribution choice is an operational design decision. Ubuntu LTS and Debian stable provide predictable Debian-family labs; Fedora emphasizes current technology and regular upgrades; Rocky Linux and AlmaLinux provide enterprise-compatible RPM/DNF and SELinux experience. Use one primary platform for depth and a second family for transferability.

Next lesson

Installing Linux in a Virtual Machine

You will turn the distribution decision into a reproducible VM with verified installation media, safe networking, documented resources, and a recoverable baseline.

11. Further reading

  • Ubuntu release-cycle and lifecycle documentation — LTS and interim release policies.
  • Debian Releases — stable, testing, unstable, and release support information.
  • Fedora Release Life Cycle — release cadence, maintenance, and end-of-life policy.
  • Rocky Linux documentation — release notes, installation, and enterprise-family administration.
  • AlmaLinux release notes and lifecycle documentation — supported major and minor releases.

Keep the academy open

Support free, practical DevOps education.

Every lesson is designed to remain readable in a browser, downloadable from GitHub, and usable without a paid learning platform. Contributions help expand and maintain the curriculum.

Ethereum / ERC-20
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0 Send only Ethereum/ERC-20 compatible assets to this address.