Fedora
Cutting-edge and community-driven. The proving ground for Red Hat Enterprise Linux.
Overview
| Based on | Independent (RPM) |
| Package manager | DNF |
| Package format | .rpm |
| Release model | Fixed releases every ~6 months, ~13 months support each |
| Default DE | GNOME (vanilla) |
| Init system | systemd (Fedora created systemd) |
| Website | fedoraproject.org |
Why Fedora?
- Bleeding edge, stabilized - Ships the latest GNOME, kernel, and toolchains within weeks of upstream release
- Vanilla GNOME - The purest GNOME experience of any major distro
- SELinux enabled by default - Enhanced security out of the box
- Developer favorite - Linus Torvalds uses Fedora. Great for kernel, systems, and container development.
- Red Hat pipeline - What ships in Fedora today becomes RHEL tomorrow. Great for career skills.
- Flatpak-first - Flathub integration out of the box
Editions
- Workstation - Desktop with GNOME
- Server - Headless server with Cockpit web admin
- IoT - For Internet of Things devices
- CoreOS - Minimal, immutable OS for running containers
- Silverblue - Immutable desktop variant (rpm-ostree based)
- Spins: KDE, XFCE, MATE, Cinnamon, i3, Sway, LXQt editions
Package Management
# Upgrade all packages
sudo dnf upgrade
# Install a package
sudo dnf install neovim
# Search
dnf search nodejs
# Install a group
sudo dnf group install "Development Tools"
# View history and undo
dnf history
sudo dnf history undo last
# Enable RPM Fusion (for codecs, NVIDIA, etc.)
sudo dnf install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# Install multimedia codecs
sudo dnf group install multimedia
sudo dnf install ffmpeg
RPM Fusion: Fedora's default repos only include free and open-source software. You almost certainly want to enable RPM Fusion for codecs, NVIDIA drivers, Steam, and other proprietary software.
Setting Up for Development
# C/C++ toolchain
sudo dnf group install "Development Tools" "C Development Tools and Libraries"
# Python
sudo dnf install python3 python3-pip python3-devel
# Node.js
sudo dnf install nodejs npm
# Or use nvm for version management
# Containers (Podman is pre-installed on Fedora, Docker alternative)
podman run hello-world
# Docker (if you specifically need Docker)
sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Go
sudo dnf install golang
Tips
- Fedora ships Podman instead of Docker. It's daemonless, rootless by default, and uses the same CLI. Most Docker commands work by just replacing
dockerwithpodman. - Upgrade between Fedora releases with
sudo dnf system-upgrade - Use Toolbx (
toolbox) for containerized development environments without polluting your host system - Fedora defaults to Wayland. If you need X11 (for screen sharing in some apps), select "GNOME on Xorg" at the login screen
- Consider Fedora Silverblue if you want an immutable base system with Flatpak apps