Installing RPM Fusion on Fedora unlocks the media, driver, and application packages Fedora intentionally leaves outside its default repositories. The repository is most useful when you need the full FFmpeg build, GStreamer codec complements, Steam, Discord, DVD playback support, or hardware video acceleration packages that are not available from Fedora’s standard package set.
Use this DNF workflow on current mutable Fedora releases, including Fedora 44 and Fedora 43. Fedora Silverblue, Kinoite, and other Atomic desktops use rpm-ostree instead; keep those workflows separate because they involve layering, rebooting, and rollback behavior that differs from a normal DNF transaction. RPM Fusion maintains separate OSTree setup notes for those editions.
Install RPM Fusion Repositories on Fedora
Update Fedora Before Installing RPM Fusion
Refresh Fedora first so the release packages install against current repository metadata and package versions. For broader package-manager tuning, see our guide on increasing DNF speed on Fedora.
sudo dnf upgrade --refresh
Package changes require sudo privileges. If your account cannot run sudo yet, use the Fedora sudoers walkthrough to add and manage sudo users on Fedora.
Check Existing RPM Fusion Repository State
Fedora Workstation can include limited third-party repository entries for Steam or NVIDIA drivers even when the full RPM Fusion Free and Nonfree release packages are not installed. Check the current repository state before adding anything new:
dnf repo list --all | grep -i rpmfusion
A full RPM Fusion setup includes the Free and Nonfree release repositories. Limited Fedora third-party entries such as rpmfusion-nonfree-steam or rpmfusion-nonfree-nvidia-driver are narrower and do not replace the main RPM Fusion release packages.
Relevant output for a full Fedora 44 setup includes:
rpmfusion-free RPM Fusion for Fedora 44 - Free rpmfusion-free-updates RPM Fusion for Fedora 44 - Free - Updates rpmfusion-nonfree RPM Fusion for Fedora 44 - Nonfree rpmfusion-nonfree-updates RPM Fusion for Fedora 44 - Nonfree - Updates
Enable RPM Fusion Free and Nonfree
Most desktop and workstation users enable both Free and Nonfree so multimedia packages, gaming software, and redistributable proprietary packages resolve from the same RPM Fusion release set. RPM Fusion’s current Fedora configuration instructions use the same version-detected release package pattern.
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
The $(rpm -E %fedora) expression expands to your Fedora release number, such as 44 or 43, so one command works across supported Fedora releases without hardcoding the version.
Some minimal Fedora installs may not include DNF5’s config-manager plugin. If DNF reports that the subcommand is missing, install the virtual command provider before using repository toggles such as OpenH264, testing, or tainted branches:
sudo dnf install 'dnf5-command(config-manager)'
Enable Fedora’s Cisco OpenH264 repository after RPM Fusion is present. Current Fedora releases use DNF5’s config-manager setopt syntax for persistent repository toggles:
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1
Verify that the OpenH264 repository is enabled:
dnf repo list | grep -i fedora-cisco-openh264
Install Only RPM Fusion Free
The Free repository contains open-source software that Fedora cannot ship for patent, policy, or similar distribution reasons.
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Install Only RPM Fusion Nonfree
The Nonfree repository provides redistributable software that is not open source or has license restrictions that keep it outside Fedora’s default repositories.
sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Compare RPM Fusion Free and Nonfree
Choose the repository branches based on the package families you plan to install:
| Branch | Package Type | Typical Packages | Best Fit |
|---|---|---|---|
| RPM Fusion Free | Open-source packages Fedora does not ship for legal, patent, or policy reasons | ffmpeg, GStreamer complements, mesa-va-drivers-freeworld | Multimedia codecs, media tools, and open-source hardware acceleration packages |
| RPM Fusion Nonfree | Redistributable packages that are proprietary or license-restricted | discord, steam, intel-media-driver | Gaming, proprietary applications, and redistributable vendor components |
| Tainted branches | Optional packages with extra legal or redistribution concerns | libdvdcss, selected firmware packages | DVD playback or hardware-specific firmware when you understand the legal scope in your region |
RPM Fusion Safety and Support Scope
RPM Fusion is a long-running third-party Fedora-focused project, not an official Fedora repository. Its packages are maintained and signed by RPM Fusion, and the repository closely tracks Fedora releases, but enabling it still expands the trusted package sources on your system. Keep Fedora and RPM Fusion packages updated together to avoid mixed dependency sets.
Verify RPM Fusion Installation
Confirm the enabled RPM Fusion repositories after installing the release packages:
dnf repo list | grep -i rpmfusion
Relevant output with both release packages installed includes:
rpmfusion-free RPM Fusion for Fedora 44 - Free rpmfusion-free-updates RPM Fusion for Fedora 44 - Free - Updates rpmfusion-nonfree RPM Fusion for Fedora 44 - Nonfree rpmfusion-nonfree-updates RPM Fusion for Fedora 44 - Nonfree - Updates
Enable RPM Fusion AppStream Metadata
RPM Fusion publishes AppStream metadata for graphical package managers such as GNOME Software and KDE Discover. DNF5 cannot extend Fedora groups with RPM Fusion content, so install the AppStream data packages explicitly. If you enabled both Free and Nonfree, install both metadata packages:
sudo dnf install rpmfusion-free-appstream-data rpmfusion-nonfree-appstream-data
For a one-branch setup, install only the matching metadata package. Use rpmfusion-free-appstream-data for Free-only systems or rpmfusion-nonfree-appstream-data for Nonfree-only systems.
Install RPM Fusion Multimedia Codecs on Fedora
Fedora ships ffmpeg-free by default for many media tasks. RPM Fusion provides the full FFmpeg build and GStreamer complements for codecs and media workflows that Fedora cannot cover in the default package set. If your main task is FFmpeg itself, the dedicated guide to install FFmpeg on Fedora covers package choice and command use in more depth. These packages also help applications such as VLC, Kodi, Firefox, and media encoders handle more formats.
Switch to Full FFmpeg from RPM Fusion
Swap Fedora’s limited FFmpeg package for RPM Fusion’s full build when you want broad codec support from one package family:
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
The libavcodec-freeworld package is only needed when you keep ffmpeg-free and want selected codec additions. After switching to the full RPM Fusion ffmpeg package, do not install libavcodec-freeworld separately.
Install GStreamer Multimedia Complements
GStreamer-based desktop applications use a separate plugin stack. Add the RPM Fusion multimedia complements without pulling weak dependencies that most desktop systems do not need:
sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
Install Hardware Video Acceleration Packages
Hardware video acceleration lets the GPU handle supported video decode or encode work instead of leaving every task on the CPU. Install the package that matches your hardware and driver stack.
| Hardware | Package | Repository | Notes |
|---|---|---|---|
| Intel Broadwell and newer | intel-media-driver | RPM Fusion Nonfree | Modern Intel VAAPI driver |
| Intel Haswell and older | libva-intel-driver | RPM Fusion Free | Legacy Intel VAAPI driver |
| AMD with Mesa | mesa-va-drivers-freeworld | RPM Fusion Free | Freeworld VAAPI driver for patent-restricted codec support |
| NVIDIA proprietary driver | libva-nvidia-driver | Fedora | VAAPI wrapper for NVIDIA’s proprietary decode path |
Install the modern Intel driver:
sudo dnf install intel-media-driver
Install the legacy Intel driver only on older Intel graphics hardware:
sudo dnf install libva-intel-driver
Install AMD’s freeworld VAAPI driver when you need the RPM Fusion Mesa codec path:
sudo dnf install mesa-va-drivers-freeworld
Install the NVIDIA VAAPI wrapper after setting up the proprietary NVIDIA driver from Fedora or RPM Fusion:
sudo dnf install libva-nvidia-driver
If your next task is the full NVIDIA stack rather than just VAAPI support, use the dedicated Fedora guide to install NVIDIA drivers on Fedora.
Verify VAAPI Hardware Acceleration
The vainfo utility prints the active VAAPI driver and the profiles it exposes:
sudo dnf install libva-utils
vainfo
Relevant output includes driver initialization plus supported profiles:
libva info: va_openDriver() returns 0 VAProfileH264Main : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD
Enable RPM Fusion Testing Repositories
RPM Fusion Testing repositories provide early package builds before they move to the stable update repositories. Most new Fedora users should leave testing disabled. Enable testing only when you need a specific package update, a maintainer asks you to test a build, or a troubleshooting step names the testing repository, because mixing testing packages into a daily system can create temporary dependency skew.
Check whether any RPM Fusion testing repositories are already visible before changing their state:
dnf repo list --all | grep -E '^rpmfusion-(free|nonfree)-updates-testing'
Enable both testing branches only when both base branches are installed and the package you are testing could come from either RPM Fusion Free or Nonfree. For a Free-only or Nonfree-only setup, use only the matching rpmfusion-free-updates-testing.enabled=1 or rpmfusion-nonfree-updates-testing.enabled=1 argument:
sudo dnf config-manager setopt rpmfusion-free-updates-testing.enabled=1 rpmfusion-nonfree-updates-testing.enabled=1
Confirm the testing repositories appear in the enabled repository list:
dnf repo list | grep -E '^rpmfusion-(free|nonfree)-updates-testing'
Disable testing again after installing or testing the specific package you needed. As with enablement, keep only the matching argument if your system uses one RPM Fusion branch:
sudo dnf config-manager setopt rpmfusion-free-updates-testing.enabled=0 rpmfusion-nonfree-updates-testing.enabled=0
Install RPM Fusion Tainted Repositories
RPM Fusion’s tainted branches are optional add-on repositories, not a required part of a normal RPM Fusion setup. “Tainted” means RPM Fusion keeps the packages separate because legal, patent, firmware, or redistribution rules can vary by location and hardware. Enable the matching base Free or Nonfree repository before installing a tainted release package.
| Tainted Branch | Common Use | Beginner Recommendation |
|---|---|---|
| Free tainted | libdvdcss for encrypted DVD playback | Use only when you need DVD playback that requires libdvdcss |
| Nonfree tainted | Hardware-specific firmware packages with extra redistribution concerns | Search first, then install only the exact firmware package your hardware needs |
Confirm the base RPM Fusion release packages before enabling tainted branches. It is normal for the branch you did not install to report “not installed”; only the matching base branch matters for the tainted branch you plan to use:
rpm -q rpmfusion-free-release rpmfusion-nonfree-release
Install Free Tainted for DVD Playback
Use Free tainted when encrypted DVD playback is the specific goal. The release package enables the repository; it does not install libdvdcss by itself:
sudo dnf install rpmfusion-free-release-tainted
Verify that the Free tainted repository is enabled:
dnf repo list | grep -E '^rpmfusion-free-tainted'
Check the package details before installing it:
dnf repoquery --repo=rpmfusion-free-tainted --info libdvdcss
Add libdvdcss after enabling the Free tainted branch:
sudo dnf install libdvdcss
Confirm the package is installed when DNF finishes:
rpm -q libdvdcss
Search Nonfree Tainted Firmware Packages
Use Nonfree tainted only when a specific device needs firmware from that branch. The release package enables the repository; it does not choose the firmware package for you:
sudo dnf install rpmfusion-nonfree-release-tainted
Verify that the Nonfree tainted repository is enabled:
dnf repo list | grep -E '^rpmfusion-nonfree-tainted'
Search only the Nonfree tainted branch for firmware packages, then install only the exact package your hardware or vendor documentation requires. The --repo option keeps the query limited to that repository instead of mixing in Fedora’s normal firmware packages:
dnf repoquery --repo=rpmfusion-nonfree-tainted '*-firmware'
The package set is hardware-specific and can differ by Fedora release. For example, Fedora 44 metadata includes names such as b43-firmware, broadcom-bt-firmware, nouveau-firmware, and p54pci-firmware, but a broad wildcard install can add firmware you do not need.
Inspect one candidate before installing it. For example, use this query only when your hardware or troubleshooting notes point to the Broadcom b43 firmware package:
dnf repoquery --repo=rpmfusion-nonfree-tainted --info b43-firmware
Install a firmware package only after matching it to your device. For a Broadcom b43 device, after confirming that b43-firmware is the right package for the hardware, the install command is:
sudo dnf install b43-firmware
Do not use the Broadcom example for unrelated wireless, NVIDIA, or other firmware problems. Search the Nonfree tainted repository and install the package that matches the actual device.
Search and Install RPM Fusion Packages
After enabling RPM Fusion, search or query packages before installing them. Some applications, such as Discord and Steam, come from RPM Fusion Nonfree, while applications such as OBS Studio and VLC may still come from Fedora’s own repositories even after RPM Fusion is enabled.
dnf search discord
Check the repository source before installing a package:
dnf repoquery --info discord
Relevant output for Discord on Fedora 44 includes:
Name : discord Repository : rpmfusion-nonfree-updates Summary : Discord Client
Install the package after confirming it is the one you want:
sudo dnf install discord
Manage RPM Fusion Repositories
Update Fedora and RPM Fusion Packages
Use normal Fedora upgrades for routine maintenance. Updating Fedora and RPM Fusion packages together keeps shared dependencies aligned better than partial repository-only upgrades.
sudo dnf upgrade --refresh
Remove RPM Fusion Release Packages
Remove only the RPM Fusion release packages you no longer want. Installed applications from RPM Fusion remain installed unless you remove those packages separately, and removing the release packages can leave those applications without their normal update source.
rpm -q --qf '%{NAME}\n' rpmfusion-free-release rpmfusion-nonfree-release rpmfusion-free-release-tainted rpmfusion-nonfree-release-tainted 2>/dev/null
Remove the installed RPM Fusion release packages with a guarded package list:
rpm -q --qf '%{NAME}\n' rpmfusion-free-release rpmfusion-nonfree-release rpmfusion-free-release-tainted rpmfusion-nonfree-release-tainted 2>/dev/null | xargs -r sudo dnf remove
Check whether any RPM Fusion release packages remain installed:
rpm -q rpmfusion-free-release rpmfusion-nonfree-release rpmfusion-free-release-tainted rpmfusion-nonfree-release-tainted || true
Check the effective repository state and leftover repository files after removal. Fedora Workstation may still show separate third-party Steam or NVIDIA repo entries if those came from Fedora’s own third-party repository setup rather than the full RPM Fusion release packages.
dnf repo list --enabled | grep -i '^rpmfusion' || echo "RPM Fusion repositories are not enabled"
find /etc/yum.repos.d -maxdepth 1 \( -name 'rpmfusion-free*.repo' -o -name 'rpmfusion-nonfree*.repo' \) -print
find /etc/dnf/repos.override.d -maxdepth 1 -type f -exec grep -H 'rpmfusion' {} \; 2>/dev/null
Troubleshoot RPM Fusion Issues
Broken Dependencies After Updates or Release Upgrades
Dependency conflicts usually mean Fedora and RPM Fusion package sets are temporarily out of sync, testing repositories are mixed into a stable system, or a Fedora release upgrade finished before all third-party packages had matching builds.
sudo dnf upgrade --refresh
Check whether testing repositories are enabled when you did not intend to use them:
dnf repo list | grep -E '^rpmfusion-(free|nonfree)-updates-testing'
Disable testing repositories if they appear unexpectedly:
sudo dnf config-manager setopt rpmfusion-free-updates-testing.enabled=0 rpmfusion-nonfree-updates-testing.enabled=0
Review the transaction carefully before confirming a distro-sync. The
--allowerasingoption can remove conflicting packages when DNF cannot align versions another way.
sudo dnf distro-sync --refresh --allowerasing
Repository Metadata Download Errors
Metadata errors can come from a stale local cache, a temporary mirror problem, or a mismatched RPM Fusion release package after a Fedora upgrade.
sudo dnf clean metadata
sudo dnf makecache --refresh
Check the release packages if metadata still fails:
rpm -q rpmfusion-free-release rpmfusion-nonfree-release
rpm -E %fedora
Reinstall the release packages when their Fedora version no longer matches the system release:
sudo dnf reinstall 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
32-Bit Media Acceleration for Steam or Wine
Steam and some Wine workloads can use 32-bit media or graphics libraries. Keep the main Steam on Fedora workflow in its own article, then add the matching 32-bit VAAPI package only when a media or game workload needs it.
sudo dnf install mesa-va-drivers-freeworld.i686
Confirm the package is installed:
rpm -q mesa-va-drivers-freeworld.i686
Conclusion
Fedora now has RPM Fusion Free and Nonfree available through DNF, plus optional AppStream metadata, multimedia codecs, hardware video acceleration packages, and tainted branches when your use case requires them. Keep routine updates unified with sudo dnf upgrade --refresh, leave testing repositories disabled unless you need a specific build, and verify package sources with dnf repoquery --info package-name before installing unfamiliar software.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>