The missing app problem
You open the Activities overview and search for Discord. The result is empty. You run dnf search discord and the terminal returns nothing. This is not a bug. Fedora's base repositories contain only software that meets strict licensing and packaging criteria. Discord is proprietary and distributed by a third party. The base system deliberately excludes it. You need to extend your package sources.
The solution is RPM Fusion. RPM Fusion is the community-maintained repository that bridges the gap between Fedora's core and the software users expect. Adding RPM Fusion does not modify your system's core behavior. It tells dnf where to look for additional packages. Once enabled, dnf treats RPM Fusion packages identically to base packages. Updates arrive automatically during system upgrades.
How RPM Fusion fills the gap
Fedora separates the core distribution from third-party software. This separation keeps the system stable and compliant with Fedora's mission. RPM Fusion exists to provide packages that Fedora cannot include. The repository is run by volunteers who maintain high standards. Every package is signed with a GPG key. dnf verifies signatures before installing anything.
RPM Fusion has two sections: free and nonfree. The free repository contains packages that are free software but depend on non-free firmware or codecs. The nonfree repository contains proprietary software. Discord lives in the free repository. The Discord client is packaged as a wrapper around a proprietary binary, and the packaging itself follows free software guidelines. You only need the free repository for Discord.
Adding RPM Fusion is a one-time operation. The repository configuration persists across upgrades. You do not need to re-add it when you move from Fedora 40 to Fedora 41. The release package handles the transition automatically.
Installing via RPM Fusion
Run the following command to add the RPM Fusion free repository. The command downloads the release package and installs the repository configuration.
sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
# rpm -E %fedora expands to your current release number, ensuring the repo matches your system
# The URL points to the RPM Fusion release package, which configures the repository metadata
# dnf install downloads and installs the repo configuration file into /etc/yum.repos.d/
After the repository is enabled, install Discord with a standard dnf command. dnf resolves dependencies and pulls in the Discord package along with required libraries.
sudo dnf install discord
# dnf queries all enabled repositories, including the newly added RPM Fusion
# It resolves dependencies and installs the discord package along with required libraries
# The package manager handles all downloads and file placement automatically
Run dnf upgrade --refresh weekly. This is the normal maintenance command. It checks RPM Fusion as well. Discord updates will land with the rest of the system. You do not need to manage Discord separately.
Verifying the installation
Confirm the package is installed and check the version. The rpm query command shows the package metadata from the database.
rpm -q discord
# Shows the package name, version, and release from the RPM database
# Confirms the package is installed and managed by dnf
Launch Discord from the application menu or the terminal. The first launch may take a moment while the application initializes.
discord --version
# Confirms the binary is installed and prints the current version string
# Useful for verifying the version matches the package manager output
Check the repository list to ensure RPM Fusion is active. The dnf repolist command displays all configured repositories and their status.
sudo dnf repolist
# Lists all enabled repositories and the number of packages available in each
# Verify that rpmfusion-free is present and enabled in the output
Reboot before you debug. Half the time the symptom is gone. If Discord fails to start after installation, a reboot clears any lingering session state or library caches.
Handling GPG key errors
Fedora verifies package signatures before installing anything. If the GPG key for RPM Fusion is missing, dnf stops and prints an error. This is a security feature. Do not bypass signature verification. Import the key and retry.
The error looks like this:
Public key for rpmfusion-free-release-41.noarch.rpm is not installed
Import the GPG key using rpm --import. Then clean the cache and retry the installation.
sudo rpm --import https://download1.rpmfusion.org/RPM-GPG-KEY-rpmfusion-free-fedora
# Imports the GPG key so dnf can verify package signatures from RPM Fusion
# The key is stored in /etc/pki/rpm-gpg/ for future verification
sudo dnf clean all
# Clears the cache so dnf re-fetches metadata with the new key available
# Prevents stale metadata from causing verification failures
sudo dnf install discord
# Retries the installation with the GPG key now available
# dnf verifies the signature and proceeds with the package installation
Trust the package manager. Manual file edits drift, snapshots stay. If you encounter a GPG error, import the key. Do not disable signature checking.
Understanding the update cycle
Discord updates through dnf. When a new version is available, dnf upgrade includes it in the transaction. You do not need to run a separate updater. The RPM Fusion maintainers package new releases quickly. Most updates appear within hours of the upstream release.
Run dnf check-update to see pending updates without applying them. The output lists packages with available upgrades.
sudo dnf check-update
# Queries all repositories for available updates without installing anything
# Lists discord if a newer version is available in RPM Fusion
Apply updates with dnf upgrade. The command updates all packages, including Discord.
sudo dnf upgrade
# Downloads and installs all available updates from enabled repositories
# Includes Discord if a newer version is available
Convention aside: dnf upgrade --refresh is the normal weekly maintenance command. dnf system-upgrade is for crossing major Fedora releases. They are different commands. Use dnf upgrade for routine updates. Use dnf system-upgrade only when moving from Fedora 40 to Fedora 41.
Troubleshooting crashes and logs
Discord is a desktop application. It does not run as a systemd service. Logs are stored in the user configuration directory. If Discord crashes, check the log files in ~/.config/discord.
ls -l ~/.config/discord/logs/
# Lists log files generated by Discord during previous sessions
# The most recent log usually contains the last crash report
Open the latest log file to inspect errors. The log contains timestamps and error messages.
cat ~/.config/discord/logs/$(ls -t ~/.config/discord/logs/ | head -n 1)
# Displays the contents of the most recent log file
# Look for lines marked with ERROR or FATAL to identify the cause
If Discord fails to start and the log is empty, check for SELinux denials. SELinux blocks unauthorized access. Denials appear in the journal.
journalctl -t setroubleshoot
# Shows SELinux denial messages with one-line summaries
# Read the summary before disabling SELinux or changing contexts
Run journalctl -xe first. Read the actual error before guessing. The x flag adds explanatory text and the e flag jumps to the end. Most sysadmins type journalctl -xeu <unit> muscle-memory style. For desktop apps, check the user logs first.
RPM versus Flatpak
Flatpak is an alternative installation method. Flatpak packages bundle dependencies and run in a sandbox. The Discord Flatpak is available on Flathub. It provides the same functionality as the RPM. The trade-off is isolation versus integration.
Install the Flatpak version with the flatpak command.
flatpak install flathub com.discordapp.Discord
# Installs Discord from Flathub, bundling all runtime dependencies
# The package runs in a sandbox with restricted access to the filesystem
The Flatpak version updates independently of the system. You must run flatpak update to get new versions. The RPM version updates with dnf upgrade. The RPM version shares libraries with the host. The Flatpak version carries its own libraries.
Convention aside: Config files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. For Flatpak, configuration is stored in ~/.var/app/com.discordapp.Discord/. This path is isolated from the host.
Decision matrix
Use the RPM from RPM Fusion when you want Discord to update automatically with your system and share libraries with the host.
Use the Flatpak from Flathub when you prefer sandboxed isolation and do not mind managing permissions manually.
Use the AppImage when you need a portable binary that requires no installation or root access.
Stay on the RPM if you are comfortable with standard Fedora package management and want the tightest integration.
Check the repo list before adding more sources. RPM Fusion covers Discord; you do not need a second third-party repo.