Distro Comparison
Overview
| Aspect | Arch | RHEL/Rocky/Alma | Fedora | Debian/Ubuntu |
|---|---|---|---|---|
Release Model |
Rolling |
Point release (10yr support) |
Point release (13mo) |
Point release (LTS: 5yr) |
Package Manager |
pacman + AUR |
dnf (rpm) |
dnf (rpm) |
apt (deb) |
Init System |
systemd |
systemd |
systemd |
systemd |
Default Kernel |
Latest stable |
Backported LTS |
Near-latest |
LTS (Ubuntu) |
Primary Use |
Desktop, power users |
Enterprise, production |
Cutting edge, workstation |
Servers, stability |
SELinux |
Manual (not default) |
Enabled by default |
Enabled by default |
Uses AppArmor instead |
Firewall |
Manual (iptables/nftables) |
firewalld |
firewalld |
ufw/nftables |
Release Lifecycle
Arch Linux
-
Model: Rolling release - always latest
-
Support: Continuous (no EOL)
-
Updates: Daily/weekly via
pacman -Syu -
Breaking Changes: Can happen anytime (read arch-announce!)
# Check for news before upgrading
pacman -Syu
# or with yay:
yay -Syu
RHEL/Rocky/Alma
-
Model: Major release every 3-4 years
-
Support: 10 years (Extended: up to 12)
-
Phases: Full Support (5yr) → Maintenance (5yr) → Extended
| Version | Release | Full Support | Maintenance End |
|---|---|---|---|
RHEL 8 |
May 2019 |
May 2024 |
May 2029 |
RHEL 9 |
May 2022 |
May 2027 |
May 2032 |
Fedora
-
Model: Point release every ~6 months
-
Support: ~13 months per release (N-2 supported)
-
Upgrades: In-place via
dnf system-upgrade
# Check current version
cat /etc/fedora-release
# Upgrade to next version
sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download --releasever=40
sudo dnf system-upgrade reboot
Package Management Comparison
See Package Managers Reference for detailed commands.
Key Differences
| Feature | Arch | RHEL/Fedora | Debian/Ubuntu |
|---|---|---|---|
Base Format |
pkg.tar.zst |
RPM |
DEB |
Repos |
Official + AUR |
BaseOS, AppStream, EPEL |
main, universe, multiverse |
Build System |
makepkg + PKGBUILD |
rpmbuild + spec file |
dpkg-buildpackage + debian/ |
Partial Upgrades |
NEVER |
Supported |
Supported |
Lock Files |
No |
/var/run/dnf.pid |
/var/lib/apt/lists/lock |
Repository Comparison
Arch
# Official repos in /etc/pacman.conf
[core]
[extra]
[multilib]
# AUR (community) - via yay/paru
yay -S package-from-aur
RHEL/Rocky
# Default repos
dnf repolist
# Enable EPEL (extra packages)
sudo dnf install epel-release
# Enable CRB (CodeReady Builder/PowerTools)
sudo dnf config-manager --set-enabled crb
Service Management
All use systemd. See systemd Deep Dive.
Default Services
| Service | Arch | RHEL | Fedora | Debian/Ubuntu |
|---|---|---|---|---|
Firewall |
Manual |
firewalld |
firewalld |
ufw (Ubuntu) |
SELinux |
Manual |
Enforcing |
Enforcing |
N/A (AppArmor) |
Network |
systemd-networkd/NetworkManager |
NetworkManager |
NetworkManager |
NetworkManager/netplan |
Cron |
Manual (cronie) |
crond |
crond |
cron |
SSH |
Manual (sshd) |
sshd |
sshd |
ssh |
Security Comparison
MAC Systems
| Distro | MAC | Default State | Config Location |
|---|---|---|---|
RHEL/Rocky/Fedora |
SELinux |
Enforcing |
/etc/selinux/config |
Debian/Ubuntu |
AppArmor |
Enabled |
/etc/apparmor.d/ |
Arch |
Neither (manual) |
- |
- |
Firewall Defaults
-
RHEL/Fedora
-
Arch
-
Debian/Ubuntu
# firewalld (default)
sudo firewall-cmd --list-all
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
# nftables (manual install)
sudo pacman -S nftables
sudo systemctl enable --now nftables
# Or firewalld
sudo pacman -S firewalld
sudo systemctl enable --now firewalld
# ufw (Ubuntu, simple)
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
# nftables (Debian, advanced)
sudo apt install nftables
Networking
Network Manager Comparison
| Distro | Default | Config Location | Commands |
|---|---|---|---|
Arch |
systemd-networkd or NM |
/etc/systemd/network/ or nmcli |
networkctl / nmcli |
RHEL/Fedora |
NetworkManager |
/etc/NetworkManager/ |
nmcli, nmtui |
Debian |
/etc/network/interfaces or NM |
/etc/network/ |
ifup/ifdown or nmcli |
Ubuntu |
netplan + NetworkManager |
/etc/netplan/ |
netplan apply |
Configuration Examples
-
Arch (systemd-networkd)
-
RHEL (nmcli)
-
Ubuntu (netplan)
# /etc/systemd/network/20-wired.network
[Match]
Name=enp*
[Network]
DHCP=yes
nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24
nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
nmcli con mod "Wired connection 1" ipv4.method manual
nmcli con up "Wired connection 1"
# /etc/netplan/01-network.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: true
File System Locations
System Directories
| Purpose | Arch | RHEL | Debian/Ubuntu |
|---|---|---|---|
System units |
/usr/lib/systemd/system/ |
/usr/lib/systemd/system/ |
/lib/systemd/system/ |
Admin units |
/etc/systemd/system/ |
/etc/systemd/system/ |
/etc/systemd/system/ |
Logs |
journald (binary) |
journald + /var/log/ |
journald + /var/log/ |
Package cache |
/var/cache/pacman/pkg/ |
/var/cache/dnf/ |
/var/cache/apt/archives/ |
Init config |
/etc/mkinitcpio.conf |
/etc/dracut.conf |
/etc/initramfs-tools/ |
Config File Differences
| Config | Arch | RHEL | Debian/Ubuntu |
|---|---|---|---|
Bootloader |
/boot/loader/ or /etc/default/grub |
/etc/default/grub |
/etc/default/grub |
Hostname |
/etc/hostname |
/etc/hostname |
/etc/hostname |
DNS |
/etc/resolv.conf (or resolved) |
/etc/resolv.conf (NM) |
/etc/resolv.conf (NM/resolved) |
Users |
/etc/passwd, /etc/shadow |
Same |
Same |
Sudoers |
/etc/sudoers.d/ |
Same |
Same |
Kernel Management
Viewing Kernels
-
Arch
-
RHEL/Fedora
-
Debian/Ubuntu
# Current kernel
uname -r
# Installed kernels
pacman -Q linux linux-lts linux-zen
# Current kernel
uname -r
# Installed kernels
dnf list installed kernel*
# Remove old kernels (keep 2)
sudo dnf remove --oldinstallonly --setopt installonly_limit=2 kernel
# Current kernel
uname -r
# Installed kernels
dpkg -l | grep linux-image
# Remove old kernels
sudo apt autoremove --purge
Installing Different Kernels
-
Arch
-
RHEL
-
Ubuntu
# LTS kernel
sudo pacman -S linux-lts linux-lts-headers
# Zen kernel (performance)
sudo pacman -S linux-zen linux-zen-headers
# Usually only one kernel available
# ELRepo for newer kernels
sudo dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
sudo dnf --enablerepo=elrepo-kernel install kernel-ml
# HWE kernel (newer)
sudo apt install linux-generic-hwe-24.04
# Mainline (manual)
# Use ubuntu-mainline-kernel.sh script
When to Use Each Distro
Choose Arch When:
-
Personal workstation/daily driver
-
Want latest software always
-
Comfortable with manual configuration
-
Learning Linux internals
-
Need AUR access
Choose RHEL/Rocky When:
-
Production enterprise servers
-
Compliance requirements (HIPAA, PCI-DSS)
-
Need 10-year support
-
Certification required (SAP, Oracle, etc.)
-
Working with enterprise vendors
Quick Reference
Common Tasks by Distro
# === Install package ===
pacman -S pkg # Arch
dnf install pkg # RHEL/Fedora
apt install pkg # Debian/Ubuntu
# === System upgrade ===
pacman -Syu # Arch
dnf upgrade # RHEL/Fedora
apt update && apt upgrade # Debian/Ubuntu
# === Find package for file ===
pacman -Qo /path # Arch
dnf provides /path # RHEL/Fedora
apt-file search /path # Debian/Ubuntu
# === Service management (all same) ===
systemctl status svc
systemctl enable --now svc
journalctl -u svc -f
# === Check distro version ===
cat /etc/os-release