How to Install Steam on Fedora 44

Install Steam on Fedora 44 via RPM Fusion or Flatpak. Enable Proton for Windows games, troubleshoot launch issues, and optimize performance.

Last updatedAuthorJoshua JamesRead time9 minGuide typeFedora

Proton is the practical reason many Fedora desktops can use Steam as a full gaming library instead of a native-only client: Windows titles, native Linux games, cloud saves, controller input, and shader caching all sit behind the same launcher. To install Steam on Fedora, use RPM Fusion’s native RPM for most systems, or use Flathub when you want a Flatpak package and accept its sandbox and support tradeoffs.

Fedora 44 is current and Fedora 43 remains supported; both use the same DNF5 workflow for Steam. Valve’s Steam for Linux README points its direct package instructions at latest Ubuntu or Ubuntu LTS with steam_latest.deb, so Fedora users should avoid trying to install that DEB directly and use RPM Fusion or Flathub instead.

Install Steam on Fedora

Choose a Steam Installation Method

RPM Fusion is the better default for most Fedora gaming desktops because it uses the host graphics stack and updates through DNF. Flatpak is still useful when you do not want to enable RPM Fusion or when you prefer a packaged sandbox, but the current Flathub listing is community-maintained rather than Valve-verified and grants broad device and filesystem access for games and controllers.

MethodSourceUpdatesBest FitImportant Notes
RPM FusionRPM Fusion Nonfreesudo dnf upgrade --refreshNative Fedora desktop install with host GPU driversFedora 44 currently resolves steam-1.0.0.85-6.fc44.i686 and required 32-bit Mesa/Vulkan libraries.
FlatpakFlathubsudo flatpak updateSystems where you prefer Flathub or do not want RPM FusionFlathub currently marks Steam as unverified, x86_64 only, community packaged, and broad in its device and filesystem permissions.

If you use proprietary NVIDIA graphics, install and reboot into the NVIDIA driver stack before troubleshooting Steam. The install NVIDIA drivers on Fedora guide covers the RPM Fusion driver path.

Update Fedora Before Installing Steam

Refresh package metadata and apply available system updates before adding Steam. This keeps graphics, Mesa, PipeWire, and desktop components aligned with the packages DNF will resolve next.

sudo dnf upgrade --refresh

DNF shows a transaction summary and waits for confirmation. Review the package list before accepting the update.

Install Steam with RPM Fusion

Steam is in RPM Fusion Nonfree because the client is proprietary. Add the Nonfree release package first; the command uses $(rpm -E %fedora) so Fedora 44 and Fedora 43 fetch the matching repository package automatically.

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

Verify that the enabled Nonfree repositories are visible to DNF:

dnf repo list --enabled rpmfusion-nonfree rpmfusion-nonfree-updates

If you also need RPM Fusion Free for codecs or other desktop packages, the dedicated RPM Fusion setup guide for Fedora covers the full repository family and AppStream metadata.

Install Steam after the Nonfree repository is enabled:

sudo dnf install steam

DNF installs the Steam launcher as an i686 package and resolves the 32-bit libraries Steam and many Proton games still need on x86_64 systems.

Check the installed Steam package and Steam device rules:

rpm -q steam steam-devices

Relevant Fedora 44 output includes:

steam-1.0.0.85-6.fc44.i686
steam-devices-1.0.0.101^git20260123.e0ab314-7.fc44.noarch

Install Steam with Flatpak

Fedora Workstation, Silverblue, and Kinoite include Flatpak. On mutable Fedora Server, minimal, or custom desktop installs where the command is missing, install Flatpak first with DNF; do not use this host DNF command on Atomic desktops.

sudo dnf install flatpak

Add Flathub at system scope so Steam is available to the desktop. Fedora’s built-in Fedora Flatpak remote does not provide Steam.

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

Confirm the Flathub remote is registered at the same scope used for the install command:

flatpak remotes --columns=name,options | grep -E '^flathub[[:space:]]'
flathub	system

Install Steam from Flathub:

sudo flatpak install flathub com.valvesoftware.Steam

Flatpak prompts for the app, runtime, extensions, and permissions before it installs. The current Flathub metadata uses the org.freedesktop.Platform runtime and publishes the app as com.valvesoftware.Steam/x86_64/stable.

After installation, verify the installed Flatpak record:

flatpak info com.valvesoftware.Steam

Useful fields should include the application ID, branch, installation scope, and current version:

Steam - Launcher for the Steam software distribution service

          ID: com.valvesoftware.Steam
      Branch: stable
Installation: system
     Version: 1.0.0.85

Allow a Custom Flatpak Game Library

The Steam Flatpak already has access to common removable-drive mount points such as /media, /mnt, and /run/media. If your game library uses a different custom path, grant that directory to your current user only. Replace /path/to/SteamLibrary with the actual directory.

flatpak override --user --filesystem=/path/to/SteamLibrary com.valvesoftware.Steam

Check the user override before launching Steam:

flatpak override --user --show com.valvesoftware.Steam | grep -i filesystem

The output should include a filesystems= entry for the real directory you granted.

Grant only the library path Steam needs. Avoid broad overrides such as --filesystem=host unless you understand that they remove much of the Flatpak filesystem boundary.

Launch Steam on Fedora

Launch Steam from the Terminal

For the RPM Fusion package, launch the native wrapper:

steam

For the Flatpak package, use the Flatpak app ID:

flatpak run com.valvesoftware.Steam

Launch Steam from Activities

Open Activities, search for Steam, and start the launcher from the application grid. Both RPM Fusion and Flatpak installs export a desktop launcher named Steam.

Set Up Steam After First Launch

Let Steam Update Its Runtime

The first launch downloads the current Steam client payload and runtime files. Leave the updater open until it finishes; closing it early can leave a partial runtime that fails on the next launch.

Sign In to Steam

Sign in with your Steam account, use the QR sign-in option, or create a new account from the login window. After authentication, Steam opens your library and store view.

Enable Steam Play for Windows Games

Steam Play uses Proton to run many Windows games on Linux. Steam enables Proton automatically for titles Valve has verified; to try Proton with other Windows games, open Steam > Settings > Compatibility and enable Enable Steam Play for all other titles.

Check ProtonDB before buying or installing a Windows-only game. Reports there often tell you which Proton version, launch option, or graphics-driver combination other Linux players are using.

Improve Steam Gaming on Fedora

Verify 32-Bit Vulkan and Graphics Libraries

The RPM Fusion Steam package depends on 32-bit graphics libraries because the Steam client and many Windows games still use 32-bit components. If a game opens Steam but fails to start after manual package changes, verify the Vulkan packages first.

rpm -q mesa-vulkan-drivers.i686 mesa-dri-drivers.i686 vulkan-loader.i686

Missing package names appear as package PACKAGE is not installed. Reinstall the common Mesa/Vulkan set with DNF:

sudo dnf install mesa-vulkan-drivers.i686 mesa-dri-drivers.i686 vulkan-loader.i686

NVIDIA users should also confirm the proprietary driver stack is active before blaming Proton or Steam. The Fedora NVIDIA guide linked near the top covers the driver packages, akmods build, and Secure Boot considerations.

Use GameMode for Demanding Games

GameMode lets games request temporary performance-focused settings from the system. Steam may pull it as a weak dependency, but install it explicitly if gamemoderun is missing.

For the native RPM Fusion package, use the host launch option directly. For the Steam Flatpak, host GameMode can be installed, but Flatpak-launched games still run through the sandbox, so confirm GameMode per title before treating the same launch option as active.

command -v gamemoderun
sudo dnf install gamemode

Verify the installed daemon version:

gamemoded --version
gamemode version: v1.8.2

To use GameMode for a specific Steam title, right-click the game, open Properties > General, and set this launch option:

gamemoderun %command%

Choose Proton Versions Carefully

Newer Proton builds often improve compatibility, but they can also regress games that already worked. For a single game, open Properties > Compatibility, enable Force the use of a specific Steam Play compatibility tool, and choose a version such as Proton Experimental or a stable Proton release.

Keep Proton-GE as a manual compatibility-tool choice rather than a default recommendation. It helps some games, but it is community maintained and should be changed per game instead of globally.

Check Anti-Cheat Support Before Buying

Easy Anti-Cheat and BattlEye can work through Proton only when the game developer enables Linux support. Unsupported anti-cheat usually looks like a successful launch followed by a disconnect, kick, or failed matchmaking session.

  1. Check the game’s ProtonDB reports.
  2. Look for Steam Deck Verified or Steam Deck Playable status.
  3. Check Are We Anti-Cheat Yet? for online multiplayer status.

Changing Proton versions or launch options cannot fix an anti-cheat system that the game publisher has not enabled for Linux.

Manage Shader Cache Disk Usage

Shader pre-caching can reduce in-game stutter by preparing shaders before gameplay. Enable it from Steam > Settings > Shader Pre-Caching, then watch disk usage if you keep a large library.

du -sh ~/.local/share/Steam/steamapps/shadercache 2>/dev/null
du -sh ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/shadercache 2>/dev/null

The du command in Linux is useful for checking which Steam library, cache, or compatibility-data directory is consuming space before you delete anything.

Troubleshoot Steam on Fedora

DNF Cannot Find the Steam Package

If sudo dnf install steam cannot find a match, RPM Fusion Nonfree is not enabled or DNF has stale repository metadata.

No match for argument: steam
Error: Unable to find a match: steam

Check the enabled RPM Fusion repositories:

dnf repo list --enabled rpmfusion-nonfree rpmfusion-nonfree-updates

If no RPM Fusion rows appear, add the Nonfree release package again and refresh metadata:

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

Both RPM and Flatpak Steam Are Installed

Keeping both package formats can confuse launchers, library paths, permissions, and troubleshooting. Check both installed states before you remove anything:

rpm -q steam 2>/dev/null || echo "RPM package is not installed"
flatpak list --app --columns=application | grep -Fx com.valvesoftware.Steam || echo "Flatpak app is not installed"

If both commands report Steam, choose one package format and use the matching removal section for the other one. Keep the RPM Fusion package when you want host GPU integration first; keep the Flatpak when your priority is a Flathub-managed sandbox.

Windows Games Stall or Rebuild Shaders Forever

Corrupted shader caches can make a game sit at “Launching” or rebuild the same cache repeatedly. Clear shader cache first, then retest the game before deleting compatibility data.

rm -rf ~/.local/share/Steam/steamapps/shadercache/*
rm -rf ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/shadercache/*

Compatibility data stores per-game Windows prefixes and can include local saves or configuration. Back up the game-specific folder before deleting anything under compatdata.

Steam Runtime Errors Mention Missing Files

A partial first launch or interrupted update can leave the Steam runtime incomplete. If the error names a missing path under ~/.steam/root/ubuntu12_32/steam-runtime/, move the runtime directory out of the way and let Steam recreate it.

For the RPM Fusion package, move the runtime directory out of the way so Steam recreates it on the next launch:

mv ~/.steam ~/.steam.backup.$(date +%Y%m%d-%H%M%S)

For the Flatpak package, move the sandbox data directory instead:

mv ~/.var/app/com.valvesoftware.Steam ~/.var/app/com.valvesoftware.Steam.backup.$(date +%Y%m%d-%H%M%S)

Launch Steam again. If the new runtime works, copy back only the game library or save data you still need, then remove the backup directory when you are sure nothing is missing.

Flatpak Steam Cannot Access a Game Library

If the Flatpak build cannot write to a custom game directory, inspect Steam’s current Flatpak permissions:

flatpak info --show-permissions com.valvesoftware.Steam

Grant the exact library directory if it is outside the default mount points:

flatpak override --user --filesystem=/path/to/SteamLibrary com.valvesoftware.Steam

Restart Steam after applying the override so the sandbox picks up the new permission.

No Audio or Controller Input in Games

First confirm PipeWire is the audio server Steam sees:

pactl info | grep "Server Name"

Look for PipeWire in the server name. Restart user audio services if games launch without sound:

systemctl --user restart pipewire pipewire-pulse wireplumber

For controller detection, check whether the kernel exposes a joystick device:

ls /dev/input/js*
/dev/input/js0

The RPM Fusion path installs steam-devices, which provides Steam-related udev rules. For Flatpak, the current metadata already grants broad device access, so missing controllers usually point to host input detection, a disconnected device, or game-specific Steam Input settings rather than a missing Flatpak override.

Games Fail When the Library Is Under /usr

Steam’s pressure-vessel runtime reserves the /usr hierarchy for its own container view. A library path such as /usr/games/steam can break Proton games because Steam cannot share that path into the runtime.

If the warning names STEAM_COMPAT_DATA_PATH and says /usr is reserved by the container framework, move the library to a normal user or data mount path instead:

  1. Open Steam > Settings > Storage.
  2. Add a library under your home directory, /mnt, /media, or /run/media.
  3. Move each game from Properties > Installed Files > Move Install Folder.

Retest the game after moving it to the new library location.

Update or Remove Steam on Fedora

Update Steam from RPM Fusion

Update the RPM Fusion package with the rest of your Fedora packages:

sudo dnf upgrade --refresh

The Steam client may still download its own runtime and client payload updates the next time you launch it.

If you installed GameMode for Steam, it updates with normal Fedora DNF updates.

Update Steam from Flathub

Update the Steam Flatpak and any required runtimes from Flathub:

sudo flatpak update com.valvesoftware.Steam

Use sudo flatpak update without the app ID when you want to update every system-scope Flatpak app and runtime.

Remove the RPM Fusion Steam Package

Remove the RPM Fusion package with DNF:

sudo dnf remove steam

Verify the package is no longer installed:

rpm -q steam >/dev/null 2>&1 || echo "steam package is not installed"
steam package is not installed

If you installed the host GameMode package only for Steam and no other games use it, remove it separately:

sudo dnf remove gamemode

Leave RPM Fusion enabled if other packages use it. Remove the repository only when you are sure nothing else on the system depends on RPM Fusion packages.

Remove the Steam Flatpak

Remove the system-scope Flatpak app:

sudo flatpak uninstall com.valvesoftware.Steam

Verify the app ID is gone from the system installation:

flatpak list --system --app --columns=application | grep -Fx com.valvesoftware.Steam || echo "Steam Flatpak is not installed"
Steam Flatpak is not installed

Delete Steam User Data

Package removal does not automatically delete downloaded games, screenshots, shader caches, local prefixes, or account state from your home directory. List the likely data directories first:

find "$HOME" -maxdepth 3 \( -path "$HOME/.steam" -o -path "$HOME/.local/share/Steam" -o -path "$HOME/.var/app/com.valvesoftware.Steam" \) -print

The next commands permanently delete Steam account state, local game files, screenshots, workshop content, shader caches, and Proton prefixes for this Linux user. Back up anything you need before continuing.

For the RPM Fusion package, remove native Steam data:

rm -rf "$HOME/.steam" "$HOME/.local/share/Steam"

For the Flatpak package, remove sandboxed Steam data:

rm -rf "$HOME/.var/app/com.valvesoftware.Steam"

Conclusion

Steam is ready on Fedora through RPM Fusion or Flathub, with Proton available for Windows games and normal update paths for each package source. Keep graphics drivers current, check ProtonDB before buying multiplayer or Windows-only games, and use GameMode only for titles that benefit from the extra tuning.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show our tutorials more often in Top Stories and mark them as preferred in AI Mode and AI Overviews when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<a href="https://example.com">link</a> link
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Verify before posting: