Fedora

Fedora is the upstream source for RHEL and serves as the testing ground for new features.

Overview

  • Release cycle: ~6 months

  • Support: ~13 months per release

  • Package manager: DNF (same as RHEL)

  • Focus: Latest software, innovation

Post-Install Essentials

Update System

sudo dnf upgrade --refresh

Enable RPM Fusion

# Free repository
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

# Nonfree repository
sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Install Multimedia Codecs

# Switch to full ffmpeg
sudo dnf swap ffmpeg-free ffmpeg --allowerasing

# Install codecs
sudo dnf install gstreamer1-plugins-{bad-*,good-*,base} gstreamer1-plugin-openh264 gstreamer1-libav

System Upgrade

In-Place Upgrade

# Install upgrade plugin
sudo dnf install dnf-plugin-system-upgrade

# Download new release
sudo dnf system-upgrade download --releasever=40

# Reboot and upgrade
sudo dnf system-upgrade reboot

Best Practices

# Before upgrading
sudo dnf upgrade --refresh
sudo dnf autoremove

# Check for issues
sudo dnf system-upgrade download --releasever=40 --allowerasing

# After upgrade
sudo dnf distro-sync
sudo dnf autoremove

COPR Repositories

Fedora’s community package building service.

Enable COPR Repository

# Enable repository
sudo dnf copr enable user/project

# Example: Enable lazygit
sudo dnf copr enable atim/lazygit
sudo dnf install lazygit

# List enabled COPR repos
dnf copr list --enabled

Disable COPR

sudo dnf copr disable user/project

Flatpak

Fedora includes Flatpak by default (Workstation).

Setup Flathub

# Add Flathub remote
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

# Install app
flatpak install flathub org.app.Name

# Run app
flatpak run org.app.Name

Toolbx Containers

Development environments in containers.

Basic Usage

# Create container
toolbox create

# Enter container
toolbox enter

# Create named container
toolbox create --container my-dev

# List containers
toolbox list

# Remove container
toolbox rm container-name

Development Environments

# Create specific Fedora version
toolbox create --release 39

# Enter specific container
toolbox enter --container my-dev

Fedora Spins

Specialized Fedora editions:

Spin Desktop/Focus

Workstation

GNOME (default)

KDE Spin

KDE Plasma

Xfce Spin

Xfce (lightweight)

Server

Headless server

CoreOS

Container-optimized

Silverblue

Immutable GNOME

Kinoite

Immutable KDE

Fedora vs RHEL Differences

Aspect Fedora RHEL

Release cycle

6 months

3-4 years

Support

13 months

10+ years

Packages

Latest versions

Stable, backported fixes

SELinux

Enforcing default

Enforcing default

Firewall

firewalld

firewalld

Subscription

Not required

Required (or use Rocky/Alma)

Fedora-Specific Commands

System Information

# Fedora version
cat /etc/fedora-release

# rpm-ostree status (Silverblue/Kinoite)
rpm-ostree status

Package Groups

# Common groups
sudo dnf group install "Development Tools"
sudo dnf group install "C Development Tools and Libraries"

# List groups
dnf group list

See Also