Fedora

Cutting-edge and community-driven. The proving ground for Red Hat Enterprise Linux.

Desktop Development Beginner

Overview

Based onIndependent (RPM)
Package managerDNF
Package format.rpm
Release modelFixed releases every ~6 months, ~13 months support each
Default DEGNOME (vanilla)
Init systemsystemd (Fedora created systemd)
Websitefedoraproject.org

Why Fedora?

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