Right, so you’ve mastered the core dnf commands and you’re feeling pretty good about installing anything the main Fedora repos throw at you. Welcome to the warm-up. The real world of Linux software is a sprawling, chaotic bazaar, and a huge amount of it isn’t packaged by the distro maintainers. Maybe you need a proprietary graphics driver, a media codec that’s tangled in patent law, or the latest version of some niche developer tool. That’s where the concept of third-party repositories comes in, and it’s a game-changer. Think of them as official, curated, but externally maintained app stores that seamlessly plug into your system’s dnf machinery.

The granddaddy of them all, and arguably the most important repo you’ll ever add, is EPEL (Extra Packages for Enterprise Linux). Now, I know you’re on Fedora, but hear me out. EPEL is primarily targeted at its enterprise siblings, RHEL and CentOS, which are famously conservative with what they include. Fedora often benefits from the work done for EPEL, and many packages are built for both. It’s run by the Fedora project itself, so its trust level is sky-high. You’ll find a ton of incredibly useful server utilities, libraries, and tools here that the main Fedora repos deem too “enterprisey” or niche.

Enabling EPEL the Right Way

On older guides, you’ll see people telling you to manually download and install an epel-release RPM. Please, for my sanity, don’t do that. The modern, correct way is to use the dnf plugin that’s designed specifically for this. It’s almost certainly already installed.

# This is the way. It automatically figures out the right EPEL version for your OS.
sudo dnf install epel-release

Once that’s done, EPEL is just… there. You can sudo dnf install nmon or htop (if for some reason it’s missing) and it’ll happily pull from EPEL without any further ceremony.

RPM Fusion: The Necessary Chaos

While EPEL is the respectable, suit-wearing cousin, RPM Fusion is the brilliant, slightly anarchic one who knows where to get the good stuff. This is the community-run repo that provides all the software that Fedora can’t or won’t ship due to legal, patent, or philosophical reasons. We’re talking about everything from DVD playback libraries (libdvdcss) to the NVIDIA and AMD GPU drivers, to unencumbered media codecs.

RPM Fusion is split into two parts for a very good reason:

  • Free: This contains open-source software that might be encumbered by patents (like ffmpeg with full codec support) or that Red Hat’s lawyers are wary of. You want this.
  • Nonfree: This is for, well, non-free stuff. Mostly proprietary driver packages, like the NVIDIA driver. You need this if you have that hardware.

Enabling it is just a matter of installing the right release package. The dnf method is, again, superior.

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

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

That $(rpm -E %fedora) bit is a slick piece of shell magic that automatically substitutes your Fedora version number, so you don’t have to go hunting for it. See? They’re not savages.

COPR: The Wild West of Repositories

If RPM Fusion is the curated third-party repo, COPR (Cool Other Package Repo) is Fedora’s equivalent of a user’s personal PPA from the Ubuntu world. It’s a build system that lets anyone—yes, anyone—create a repository for their own packaged software. This is where you find the absolute latest, cutting-edge, or just plain weird stuff.

The quality and maintenance of COPR repos vary wildly. Some are impeccably maintained by Fedora package veterans. Others are abandoned experiments that will break your system with an update. Tread carefully. You should only add COPR repos from sources you explicitly trust.

Enabling one is simple. Find a project you want, like say, the brilliant rpm wrapper called dnf5 (meta, I know).

# Enable the copr repo for a project
sudo dnf copr enable @rpmsoftwaremanagement/dnf5

# Now you can install the software from it
sudo dnf install dnf5

Best Practices and Pitfalls

  1. Priority is Everything: The biggest risk with multiple repos is having two of them offer the same package. Which one wins? By default, it’s the one with the higher version number, which might be from an untested COPR repo and could break your system. You can use the priority= directive in the repo config file (found in /etc/yum.repos.d/) to control this. A lower number means a higher priority (1 is highest, 99 is lowest). Set your core Fedora repos to priority=1, trusted third-party ones like RPM Fusion to priority=10, and sketchy COPR repos to priority=20. This ensures the core system always pulls from the right place.

  2. Clean Up Your Mess: Don’t just enable COPR repos willy-nilly. When you’re done testing something, disable it. sudo dnf copr disable @user/project Or, better yet, remove the repo file from /etc/yum.repos.d/ entirely. A clean system is a stable system.

  3. The dnf repolist Command: This is your best friend. Run dnf repolist all to see every single repository you have enabled and disabled. It’s the master list of your software sources. Use it to audit your system and make sure nothing sneaky got in there.

Ultimately, these third-party repos are what transform your Fedora install from a well-behaved lab computer into a powerful, do-anything workstation. Use them wisely, and they’ll serve you well. Abuse them, and well… I told you so. But that’s what sudo dnf history undo last is for.