You already know that Linux is a kernel and that its history explains its design. What remains is the indispensable intermediate step before installing anything: understanding what a distribution really is and why there are hundreds of them.

This lesson settles a doubt that blocks many people at the start: "which one do I choose?". The professional answer is not "the best one", because there is no such thing: it is "the one that fits what I am going to do, what my team already knows, and how many years I need it to last". You are going to see which pieces make up a distribution, how the three big families really differ, what LTS means and why it is decisive on a server, and how to choose with sound judgement. At the end we will reconstruct Tramontana S.L.'s decision step by step: why srv-tramontana runs Ubuntu Server 24.04 LTS and not something else.

Contents

  1. What a distribution really consists of
  2. The Debian family: Debian and Ubuntu
  3. The Red Hat family: Fedora, RHEL, Rocky and Alma
  4. The Arch family and the rolling release model
  5. Other relevant families: SUSE and Alpine
  6. Comparison table by criteria
  7. LTS and why it matters on a server
  8. Fixed releases versus rolling release
  9. Special-purpose distributions
  10. How to choose a distribution with professional judgement
  11. Tramontana's decision and the RHEL equivalences

  1. What a distribution really consists of

A distribution is an assembly. These are the pieces its maintainers choose, integrate, test and maintain:

Component What it does Examples
Linux kernel Talks to the hardware 6.8 in Ubuntu 24.04, 5.14 in RHEL 9
Userland The basic commands and libraries GNU coreutils + glibc; or BusyBox + musl
Package manager Installs, updates and removes software, resolving dependencies apt/dpkg, dnf/rpm, pacman, apk, zypper
Init system The first process (PID 1); starts and supervises services systemd, OpenRC, runit
Desktop environment Graphical interface (desktop variants only) GNOME, KDE Plasma, XFCE
Installer The program that puts the system on the disk Subiquity (Ubuntu), Anaconda (RHEL)
Repositories The servers holding the packaged software archive.ubuntu.com, Red Hat's own
Release policy How often a version ships and how many years it is maintained 5-year LTS, rolling, etc.

Two of these pieces explain almost all the differences you will notice day to day.

The package manager

It is the most visible difference. A package is a compressed file containing a program's binaries, its configuration files and some metadata declaring which other packages it depends on. The package manager resolves that dependency graph, downloads what is needed and installs it in the right place.

# Debian/Ubuntu family
sudo apt install nginx

# Red Hat family
sudo dnf install nginx

# Arch
sudo pacman -S nginx

All three commands do the same thing: install the nginx web server with all its dependencies. The syntax changes, not the concept. In Module 5 you will work on package management in depth; here you only need to know that the package manager is the family's signature.

And there is an immediate practical consequence of this: the first thing you do when you land on an unknown server is find out which distribution it is, because which commands will work depends on that. The standard, portable way is to read a file that every modern distribution includes:

cat /etc/os-release

Output on srv-tramontana:

PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
UBUNTU_CODENAME=noble

The three fields that really matter:

  • ID=ubuntu: the exact identifier of the distribution.
  • ID_LIKE=debian: the family. This field is gold when you administer heterogeneous machines, because it tells you which package manager to expect even if you do not know the specific distribution. On Rocky Linux you would see ID_LIKE="rhel centos fedora".
  • VERSION_CODENAME=noble: the code name, which is what appears in the repositories and in many configuration commands.

This file is a systemd standard and it is present in Ubuntu, Debian, Rocky, Fedora, Alpine and practically any current distribution. That is why it is the check installation scripts use to decide whether to run apt or dnf.

The init system

It is process number 1, the first thing the kernel starts and the parent of all the rest. It is responsible for bringing services up in order, restarting them if they fall over and shutting them down cleanly.

Today systemd is the de facto standard: it is used by Ubuntu, Debian, RHEL, Fedora, Arch, SUSE and practically every general-purpose distribution. Its adoption between 2011 and 2015 was highly controversial because it broke with the Unix philosophy of "one program, one task" (systemd manages services, logs, networking, mounts, timers...), but it won by being much faster, more consistent and able to express dependencies between services. You will master it in lesson 05-05.

Alpine and some minimalist distributions use lighter alternatives (OpenRC, runit), which is a real difference and not a cosmetic one.

The family tree

flowchart TD
    K["Linux kernel + GNU userland"]

    K --> DEB["Debian (1993)<br/>.deb packages · apt"]
    K --> RH["Red Hat Linux (1994)<br/>.rpm packages"]
    K --> ARCH["Arch Linux (2002)<br/>pacman · rolling"]
    K --> SUSE["SUSE (1994)<br/>.rpm · zypper"]

    DEB --> UB["Ubuntu (2004)"]
    DEB --> RASP["Raspberry Pi OS"]
    UB --> MINT["Linux Mint"]
    UB --> POP["Pop!_OS"]

    RH --> FED["Fedora<br/>innovation"]
    FED --> RHEL["RHEL<br/>enterprise, paid"]
    RHEL --> ROCKY["Rocky Linux"]
    RHEL --> ALMA["AlmaLinux"]

    ARCH --> MANJ["Manjaro"]
    ARCH --> KALI2["EndeavourOS"]

Notice one detail in the diagram that confuses many people: Fedora is upstream of RHEL, not downstream. Fedora is the laboratory where Red Hat tests innovations every six months; every two or three years a state of Fedora is frozen and out of it comes a RHEL version, which is stabilised and maintained for ten years. Rocky and Alma are built from the RHEL source.

  1. The Debian family: Debian and Ubuntu

Debian

It was born in 1993 and is the reference community distribution. There is no company behind it: it is governed by a project with thousands of volunteer developers, a social contract and a leader chosen by vote.

  • Packages: .deb, managed with apt (high-level interface) and dpkg (low level).
  • Branches: stable (the current one, rock solid), testing (the one that will become the next) and unstable/sid (where everything lands first).
  • Philosophy: stability and freedom above novelty. A Debian stable may carry two-year-old software.
  • Cycle: a new version roughly every 2 years, with around 5 years of support thanks to community LTS.
  • Typical use: servers that must run for years without surprises, critical infrastructure.

Ubuntu

Canonical, Mark Shuttleworth's company, created it in 2004 starting from Debian with a clear goal: making it usable and predictable. It is today the most widespread distribution on servers and in the cloud.

  • It takes packages from Debian unstable, stabilises them, adds its own and publishes.
  • Predictable cycle: a version every 6 months (April and October) and an LTS every 2 years in April.
  • Intelligible numbering: 24.04 means 2024, month 04. 22.04 is from April 2022.
  • LTS support: 5 years as standard, extendable to 10 or 12 with an Ubuntu Pro subscription (free for personal use and up to 5 machines).
  • Flavours: Ubuntu Server (no desktop), Ubuntu Desktop (GNOME), Kubuntu (KDE), Xubuntu (XFCE), Ubuntu Core (IoT).

Strengths and criticisms, so you have the full picture:

In favour Against
The largest documentation and community It pushes snap, its own package format, which divides opinion
Every cloud provider offers it as an official image It has taken controversial unilateral decisions in the past
Commercial support available if needed Less "pure" than Debian in terms of free software
Almost any Linux tutorial is written for Ubuntu The 6-month cycle can tempt you to upgrade more than necessary

  1. The Red Hat family: Fedora, RHEL, Rocky and Alma

Red Hat is the company that proved you could make money from free software (IBM bought it in 2019 for 34 billion dollars). Its model is not selling software: it is selling support, certifications and ten-year stability guarantees.

  • Packages: .rpm, managed with dnf (successor to yum).
  • Security: SELinux enabled by default, a mandatory access control system far stricter than classic permissions. It is their hallmark and also the main source of headaches for anyone coming from Debian.
  • Firewall: firewalld instead of ufw (Module 6).

The four pieces of the ecosystem:

Distribution What it is Cost Cycle
Fedora Innovation laboratory Free 6 months, ~13 months of support
CentOS Stream A continuous preview of the next RHEL Free Rolling between RHEL versions
RHEL Enterprise product with support Paid subscription ~3 years between versions, 10 of support
Rocky Linux / AlmaLinux 1:1 RHEL-compatible rebuilds Free They follow RHEL

A recent piece of context worth knowing: in 2020 Red Hat turned CentOS (which was a free, stable rebuild of RHEL) into CentOS Stream, which runs ahead of RHEL instead of behind it. Thousands of companies were left without their free RHEL-equivalent server, and out of that Rocky Linux and AlmaLinux were born to fill the gap. If you come across old documentation recommending CentOS 7 or 8 for production, it is out of date.

Where this family is used: large enterprises, banking, public administration, environments with certification and contractual support requirements. If you work in a big corporation, you are very likely to run into RHEL.

  1. The Arch family and the rolling release model

Arch Linux (2002) is the distribution for anyone who wants total control and wants to understand every piece of their system.

  • Packages: .pkg.tar.zst with pacman, which is very fast.
  • AUR (Arch User Repository): a community repository with practically every piece of software in existence, in the form of build recipes. It is its great attraction and also its risk: it is not audited.
  • Rolling release: there are no versions. You install once and update forever.
  • Installation: manual and from the command line (although since 2021 archinstall exists to simplify it).
  • Documentation: the ArchWiki is, without argument, the best technical Linux documentation there is, and it is useful even if you do not use Arch.

Who it is for: developer desktops that always want the latest, people who want to learn in depth how a system is assembled.

Who it is not for: production servers. An update may require manual intervention and bring changes that break your application at the worst possible moment. Nobody serious puts Arch on a company's production server, and Tramontana will be no exception.

  1. Other relevant families: SUSE and Alpine

SUSE

A distribution of German origin (1994), very well established in Europe, especially in Germany, and in SAP environments.

  • openSUSE Leap: the stable community version, aligned with SUSE Linux Enterprise.
  • openSUSE Tumbleweed: a very well tested rolling release.
  • SLES (SUSE Linux Enterprise Server): the paid product with support.
  • It uses .rpm with the zypper manager and stands out for YaST, a unified administration tool with no equivalent in other distributions, and for its integration of Btrfs with automatic snapshots: you can roll back a failed update from the boot menu.

Alpine Linux

It is the interesting exception that breaks every mould:

  • It does not use glibc but musl; it does not use GNU coreutils but BusyBox.
  • It does not use systemd but OpenRC.
  • Its own package manager: apk.
  • A base image takes about 5 MB, against the ~75 MB of an Ubuntu base image.

That size has made it the standard distribution for containers. When you build Docker images in Module 7, you will see FROM alpine everywhere. Its downside is real: by using musl instead of glibc, some programs compiled for "normal" Linux fail or perform worse, and debugging those problems takes experience.

  1. Comparison table by criteria

Criterion Debian Ubuntu Fedora RHEL / Rocky Arch Alpine
Packages .deb / apt .deb / apt .rpm / dnf .rpm / dnf pacman apk
Release model Fixed (~2 years) Fixed (6 m / LTS 2 years) Fixed (6 months) Fixed (~3 years) Rolling Fixed (6 months)
Support ~5 years 5 years LTS (12 with Pro) ~13 months 10 years Continuous 2 years
Init systemd systemd systemd systemd systemd OpenRC
Libc glibc glibc glibc glibc glibc musl
Software freshness Low Medium Very high Low Maximum Medium
Backing Community Canonical Red Hat Red Hat / community Community Community
Entry curve Medium Low Low Medium High High
Typical audience Sysadmins Everyone Developers Large enterprise Enthusiasts Containers
Typical use Stable servers Servers, cloud, desktop Technical desktop Corporate production Personal desktop Docker images
Minimum size ~350 MB ~400 MB ~500 MB ~500 MB ~300 MB ~5 MB

  1. LTS and why it matters on a server

LTS stands for Long Term Support. An LTS version receives security fixes and fixes for serious bugs for years, with no functional changes.

That last part is the key and it is often misunderstood. LTS does not mean "software updated to the latest". It means exactly the opposite: the software is frozen at the version that existed on release day, and only backported security patches are applied to it. That is, Canonical takes the fix for an nginx 1.26 vulnerability and applies it on top of the nginx 1.24 that Ubuntu 24.04 ships, without changing the version.

Why this is exactly what you want on srv-tramontana

Without LTS (ordinary version) With LTS
Mandatory migration every 9 months Five quiet years
Every migration can break the application Security changes only
Frequent maintenance windows Rare, planned windows
Documentation that ages fast Stable documentation
High risk of incompatibilities Predictable behaviour

Think about it from the business side: Tramontana Bookings invoices bookings of rural cottages. Every minute of downtime is money and reputation. A server that demands migration every nine months forces you to repeat the full cycle of testing, validation and deployment five times in five years. With LTS you do it once.

The Ubuntu LTS calendar

Version Release End of standard support With Ubuntu Pro
20.04 LTS April 2020 April 2025 2030 / 2032
22.04 LTS April 2022 April 2027 2032 / 2034
24.04 LTS April 2024 April 2029 2034 / 2036
26.04 LTS April 2026 April 2031 2036 / 2038

An important warning for your professional life: end of support means end of security patches. A server running an out-of-support distribution is not "a bit old": it is a server accumulating known, unfixed vulnerabilities. Writing the end-of-support date of every machine into the calendar is an administrator's task as basic as taking backups.

  1. Fixed releases versus rolling release

Aspect Fixed release Rolling release
How it works Numbered versions with a date Continuous updating, no versions
Updating the system A one-off, planned migration Every day, in small increments
Risk of breakage Concentrated in the migration Spread out, but constant
Software freshness Frozen until the next version Always the latest
Reproducibility High: two identical machines are identical Low: they depend on when you updated
Suitable for Servers, production Personal desktops, development
Examples Debian, Ubuntu, RHEL Arch, Tumbleweed, Gentoo

The decisive argument for a server is not risk: it is reproducibility. If you build a test server today and a production one tomorrow with a rolling release, they are not the same machine, because packages have changed in between. With Ubuntu 24.04 LTS, two installations six months apart are functionally identical. When you automate deployments with Ansible in Module 7, that property will go from convenient to indispensable.

  1. Special-purpose distributions

Not every distribution aims to be general-purpose. Some solve one very specific problem and do it better than anyone:

Distribution Purpose Why it exists
Alpine Containers A 5 MB base image: less attack surface, fast downloads
Kali Linux Security auditing It ships hundreds of pentesting tools preinstalled and configured
Parrot OS Security and privacy An alternative to Kali with a focus on anonymity
Raspberry Pi OS Raspberry Pi Debian adapted to ARM and to the board's specific hardware
Proxmox VE Virtualisation Debian + KVM + LXC with a web management interface
TrueNAS SCALE Storage Debian + ZFS + NAS management
pfSense / OPNsense Firewall Based on FreeBSD (not Linux), dedicated routers and firewalls
Tails Anonymity Boots from USB, leaves no trace, all traffic through Tor
openWRT Routers Free firmware for home and professional routers

Two practical warnings that save trouble:

  • Kali is not a daily-driver distribution. It is an offensive toolbox: you boot it when you need it, ideally from a VM or a USB stick. Installing it as your main system is a very common beginner's mistake among people starting out in cybersecurity. You will see security tools in Module 6, and they install just as well on Ubuntu.
  • Using the right specific distribution saves weeks. Building a NAS on Ubuntu by hand is possible and educational; building it with TrueNAS is an afternoon's work. Knowing when to use the specialised tool is part of professional judgement.

  1. How to choose a distribution with professional judgement

Questions in order of importance. Answer them in this order and the choice almost makes itself.

1. Server or desktop? It changes everything: priorities, installed software, resource usage.

2. How many years must it last without migration? Less than a year, anything will do. Five years, you need LTS. Ten years, RHEL or Ubuntu Pro.

3. What does my team already know? The cost of learning a new family is real and it is paid in incidents at three in the morning. If your team knows apt, do not hand them dnf without a strong reason.

4. What does the software I am going to run require or certify? Many commercial products only certify RHEL and Ubuntu LTS. If your database vendor only supports RHEL, the decision is made.

5. Do I need commercial support with an SLA? If a contract requires guaranteed response times, you need RHEL, Ubuntu Pro or SLES.

6. Where is it going to run? Cloud (Ubuntu and the RHEL derivatives are first-class citizens on AWS, Azure and GCP), container (Alpine or Debian slim), Raspberry Pi (Raspberry Pi OS), old hardware (Debian with XFCE).

7. What are the documentation and the community like? When you have a problem at 3 in the morning, how many people have had that same problem before you matters more than it seems.

And three criteria that should not weigh in a professional decision: which distribution is ideologically "purer", which has the prettiest desktop, and which the experts on the forums use to show off.

  1. Tramontana's decision and the RHEL equivalences

Let us apply the seven questions to the real case.

The srv-tramontana server:

Question Tramontana's answer Consequence
Server or desktop? Server, with no monitor attached Server edition, no graphical environment
How many years? At least 4-5, with little capacity to migrate often LTS mandatory
What does the team know? Luis develops on Ubuntu; you are learning it Debian family
What does the software require? nginx, PostgreSQL, Python: all standard No constraint
Commercial support? Not for now, but it should be possible to buy it Ubuntu Pro available if needed
Where will it run? Today an on-premises server; within two years, cloud and containers Ubuntu is the default image on every cloud
Documentation? Necessary: the team is small and learns as it goes The largest community

Decision: Ubuntu Server 24.04 LTS for srv-tramontana, with support until April 2029.

Your work laptop: Ubuntu Desktop 24.04 LTS, with the user student. The reason is deliberate and deserves explaining: by using the same base version on the laptop and on the server, what you test locally behaves the same in production. Package versions match, configuration paths are the same, and a whole category of "it worked on my machine" incidents disappears.

Why this course uses Ubuntu, said openly: because it is what you are most likely to meet in the cloud and in small and medium companies, because it has the best documentation for learning, and because almost any tutorial you look up will be written for it. Not because it is technically superior to Debian or Rocky Linux.

Equivalences with RHEL

If you change company tomorrow and find Rocky Linux or RHEL, 90 % of this course applies as it is. These are the differences you will have to translate. Keep this table: it is one of the most useful in the module.

Task Ubuntu / Debian RHEL / Rocky / Alma
Install a package sudo apt install nginx sudo dnf install nginx
Refresh the package index sudo apt update (automatic in dnf)
Update the system sudo apt upgrade sudo dnf upgrade
Search for a package apt search nginx dnf search nginx
Remove a package sudo apt remove nginx sudo dnf remove nginx
See which package provides a file dpkg -S /path rpm -qf /path
Extra repositories PPA EPEL
Firewall ufw firewalld
Administrative group sudo wheel
Network config Netplan NetworkManager (nmcli)
Hardened security AppArmor SELinux
Web server user www-data apache or nginx
Apache config /etc/apache2/ /etc/httpd/
System logs /var/log/syslog /var/log/messages

What does not change, and it is the majority: the kernel, the directory structure (lesson 01-06), permissions, Bash and all the scripting, systemd and systemctl, journalctl, SSH, processes, pipes and the text tools. That is why the knowledge is transferable: what you are learning is Linux, not Ubuntu.

Of these differences, the only one that produces serious surprises is SELinux. On RHEL you can have apparently correct permissions and still get a "Permission denied" because SELinux blocks the operation by policy. It is the first thing you should suspect when migrating from Ubuntu.

Common Mistakes and Tips

  • Looking for "the best distribution". It does not exist. What exists is the most suitable one for a context. Changing distribution constantly (distro-hopping) is entertaining and educational, but during this course stick with Ubuntu 24.04 LTS: learning the system and learning a new distribution at the same time multiplies the confusion.
  • Putting a desktop distribution into production. Ubuntu Desktop on a server means gigabytes of unnecessary software, a desktop eating RAM and a much larger attack surface. Always use the Server edition.
  • Using a non-LTS version on a server. Ubuntu 24.10 will stop receiving patches in July 2025. For a server, that date arrives in no time.
  • Mixing repositories from different versions. Adding Ubuntu 25.04 repositories to a 24.04 system to get a newer version of a package breaks the system with admirable reliability. It is called a FrankenDebian and there is no comfortable fix.
  • Copying tutorials without checking the distribution and version. A CentOS 7 tutorial uses yum, iptables and different paths. Before pasting a command, check which system it was written for.
  • Installing Kali as your main system to "learn security". Learn Linux first on Ubuntu; Kali's tools can be installed afterwards on any distribution.
  • Tip. Learn one family well and know the equivalences of the other. With the table in section 11 and a knowledge of apt, you can hold your own on RHEL from day one.
  • Tip. Before choosing for a real project, always look up the end-of-support date of the candidate version and note it in the inventory. It is information that gets forgotten and badly missed three years later.

Exercises

Exercise 1

For each scenario, choose a distribution and justify the choice with at least two of the seven criteria from section 10:

  1. A mail server for a small town council, which must run for 8 years with minimal intervention and whose tender requires contractual support.
  2. A base image for a Docker microservice that is deployed 200 times a day.
  3. A developer's laptop that needs the latest versions of Python, Rust and Node.js, and where spending time on the system is not a problem.
  4. A home file server on a Raspberry Pi 5.
  5. A second server for Tramontana S.L., intended to host the Tramontana Bookings database.

Exercise 2

Marta has read on a blog that Ubuntu 24.10 "is more modern and therefore more secure" than Ubuntu 24.04 LTS, and proposes reinstalling srv-tramontana. Write the technical answer you would give her, explaining what LTS means, what security backports are, and what operational cost the proposal would have.

Exercise 3

Tramontana signs a contract with a hotel chain that requires its billing software to run on Rocky Linux 9. You have only worked with Ubuntu. Prepare a translation table with the eight administrative tasks you will need most on day one, and point out which of the differences strikes you as the most dangerous and why.


Solutions

Solution to Exercise 1

1. The council's mail server → RHEL (or SLES). Decisive criteria: how long it must last without migration (8 years is only covered by RHEL, with its 10-year cycle, or by Ubuntu Pro) and commercial support with an SLA, which the tender explicitly requires and which is only obtained with a subscription. A third one applies: public administration usually requires security certifications (Common Criteria, FIPS) that RHEL has documented. Rocky Linux would be technically equivalent but does not meet the contractual support requirement, which is what rules here.

2. Microservice base image → Alpine. Criteria: where it will run (a container) and size. With 200 deployments a day, the difference between 5 MB and 75 MB per image multiplies in bandwidth, start-up time and registry cost. On top of that, fewer packages means fewer CVEs to patch. A professional nuance: if the microservice is written in Python or Node with compiled dependencies, musl can cause compatibility and performance problems; in that case the right choice is debian:slim, which takes ~30 MB and uses glibc. Alpine is the default answer, not the automatic answer.

3. Developer laptop with the latest → Arch (or Fedora). Criteria: desktop, software freshness and time available to maintain it. Arch on rolling release always gives the latest versions and the AUR covers practically any tool. The condition "spending time on the system is not a problem" is what makes it viable. If that condition were not met, Fedora would be the right answer: software almost as recent, with 6-month cycles and far less manual maintenance.

4. File server on a Raspberry Pi 5 → Raspberry Pi OS. Criterion: where it will run. It is Debian adapted specifically to the board's hardware (GPIO, thermal management, boot, graphics acceleration), with a kernel and firmware maintained by the Raspberry Pi Foundation. Ubuntu Server for ARM also works and would be defensible if you were after uniformity with the rest of the estate, but hardware support is better in the native option.

5. Tramontana's database server → Ubuntu Server 24.04 LTS. Criteria: what the team knows and uniformity of the estate. Although technically Debian or Rocky would serve just as well, introducing a second family in a company with a single technician doubles the required knowledge, the procedures, the scripts and the update windows, without contributing anything. Uniformity has enormous operational value in small teams. Same version, same LTS, same backup scripts.

Solution to Exercise 2

An answer for Marta:

"The intuition that 'newer is more secure' is reasonable but it does not apply to server software, and it is worth explaining why.

What LTS means. Ubuntu 24.04 LTS receives security updates until April 2029, five years. Ubuntu 24.10 receives updates for nine months, until July 2025. After that date, a server running 24.10 stops receiving patches: it would accumulate known, published, unfixed vulnerabilities. The 'more modern' version would be, literally, the insecure one.

What security backports are. The fact that 24.04 ships nginx 1.24 instead of 1.26 does not mean it is missing fixes. Canonical takes every security patch published upstream and applies it to the version it distributes, keeping the version number. We get the fix without getting the functional changes. That is why a scanning tool that merely compares version numbers produces false positives on Ubuntu: you have to check the corresponding Ubuntu Security Notice (USN).

Operational cost of the proposal. Reinstalling with 24.10 would force us to migrate again in July 2025, and again every nine months. Each migration means: stopping the service, testing that Tramontana Bookings still works with the new versions of Python, PostgreSQL and nginx, reviewing configuration changes and being on hand in case something fails. That is several working days each time, multiplied by more than five over the period 24.04 covers with a single installation.

Recommendation. Keep 24.04 LTS and make sure security updates are applied automatically and verifiably. If at some point we need a more recent version of one specific component (Python, for instance), we solve it with that component's official repository or with a container, without dragging the whole operating system along. And we note April 2029 in the inventory so we can plan the migration in good time."

Solution to Exercise 3

Translation table for day one on Rocky Linux 9:

# Task Ubuntu (what I know) Rocky Linux 9
1 Install software sudo apt install <package> sudo dnf install <package>
2 Update the system sudo apt update && sudo apt upgrade sudo dnf upgrade
3 Search for a package apt search <text> dnf search <text>
4 Open a port in the firewall sudo ufw allow 443/tcp sudo firewall-cmd --add-service=https --permanent && sudo firewall-cmd --reload
5 Give a user administrator rights Add them to the sudo group Add them to the wheel group
6 Configure the network Edit the Netplan YAML in /etc/netplan/ nmcli / NetworkManager
7 Check the system logs /var/log/syslog or journalctl /var/log/messages or journalctl
8 Install software outside the base repository Add a PPA Enable EPEL: sudo dnf install epel-release

The most dangerous difference: SELinux.

It is the most dangerous for one concrete reason: it fails silently and misleadingly. The other seven differences produce obvious errors; if you type apt on Rocky, the system tells you the command does not exist and you fix it in three seconds.

SELinux, by contrast, produces a "Permission denied" when the permissions you see with ls -l are perfectly correct. You can have the file with the right owner, the right group and mode 644, and the service still cannot read it, because SELinux applies an additional policy based on contexts (labels attached to files and processes) that are not visible with the usual tools.

The classic case, and the one that wastes the most time: moving a web application's content to a non-standard directory. On Ubuntu it works; on Rocky, nginx cannot read it because the SELinux context of the new directory is not the one the policy expects.

What you need to know from the outset:

  • Check whether SELinux is active: getenforce (returns Enforcing, Permissive or Disabled).
  • Faced with an inexplicable "Permission denied", check /var/log/audit/audit.log or use ausearch -m avc -ts recent.
  • Fix contexts with restorecon or semanage fcontext.
  • What you must not do, however much every forum suggests it: disable SELinux. It is a valuable security layer, especially on an exposed server, and turning it off to solve a configuration problem is trading a problem for a risk.

The topic will be covered in Module 6, when we talk about hardening Linux systems.

Conclusion

To recap:

  • A distribution is kernel + userland + package manager + init + release policy, integrated and maintained by somebody.
  • The three big families are distinguished above all by the package manager: Debian/Ubuntu (.deb, apt), Red Hat (.rpm, dnf) and Arch (pacman, rolling). SUSE and Alpine complete the map.
  • LTS means frozen versions with backported security patches for years. On a server it is not a preference: it is a requirement.
  • Rolling release brings novelty and takes away reproducibility, which is why it does not fit in production.
  • There are specialised distributions (Alpine, Kali, Raspberry Pi OS, Proxmox) that solve one specific problem better than any general-purpose one.
  • You choose with criteria: time horizon, team knowledge, software requirements, support, target environment and documentation.
  • Tramontana uses Ubuntu Server 24.04 LTS on srv-tramontana and Ubuntu Desktop 24.04 LTS on your laptop, with support until 2029, and the differences with RHEL are tabulated for when they are needed.

You now know what you are going to install and why. In the next lesson, Installing Linux, you will build the lab you will work with across the eight modules: we will compare virtual machine, WSL2, dual boot and cloud, you will download the Ubuntu Server 24.04 LTS ISO and verify its SHA256 sum and its GPG signature before installing it, you will walk through the installer step by step — including partitioning, which is where most people get stuck — and you will create the operator user. By the end you will have srv-tramontana booted and waiting for you.

Linux Course: From Beginner to System Administrator

Module 1: Introduction to Linux

Module 2: Basic Linux Commands

Module 3: Advanced Command-Line Skills

Module 4: Shell Scripting

Module 5: System Administration

Module 6: Networking and Security

Module 7: Advanced Topics

Module 8: Practical Projects

© Copyright 2026. All rights reserved