Steam delivers a comprehensive gaming platform for Linux with over 10,000 native titles and thousands more Windows games running through Proton compatibility. The platform combines a massive game library with community features like achievements, cloud saves, Workshop mods, and multiplayer matchmaking. Steam’s Proton technology (built on Wine) translates Windows DirectX calls to Linux-compatible Vulkan graphics, enabling smooth gameplay for Windows-exclusive titles without dual-booting.
This guide covers three installation methods for Steam on Ubuntu: the default Ubuntu repository, Valve’s official repository, and Flatpak. You will also enable 32-bit library support required for Proton compatibility with Windows games.
Steam Installation Methods Comparison
| Method | Channel | Update Speed | Setup Complexity | Best For |
|---|---|---|---|---|
| Ubuntu Default Repository | Ubuntu Repos | Slower (follows Ubuntu release cycle) | Simple | Users who prefer stability and minimal configuration |
| Valve’s Official Repository | Valve Repo | Fastest (direct from Valve) | Moderate | Users who want the latest Proton updates and client features immediately |
| Flatpak (Flathub) | Flathub | Fast (Valve-maintained) | Simple | Users who prefer containerized applications or already use Flatpak |
These instructions cover Ubuntu 26.04 LTS, 24.04 LTS, and 22.04 LTS. All three methods work identically across supported releases. Steam handles graphics driver dependencies automatically during installation, so the commands remain the same regardless of your Ubuntu version.
Steam Pre-installation Steps
Update Ubuntu Before Steam Installation
Before proceeding with the Steam installation, ensure your system packages are current to prevent dependency conflicts during setup. System updates provide the latest library versions that Steam and Proton rely on for proper graphics rendering and game compatibility.
Open a terminal window with Ctrl+Alt+T, then update all system packages with the following command:
sudo apt update && sudo apt upgrade
Install Required Tools for Repository Import
Before importing the Steam repository, install curl to download the GPG signing key securely. Modern Ubuntu versions include HTTPS support in APT by default, so curl is the only additional requirement for manual repository configuration.
sudo apt install curl -y
Enable 32-bit Library Support for Proton
Steam’s Proton compatibility layer requires 32-bit libraries to run Windows games, since many Windows game executables compile as 32-bit binaries even on 64-bit systems. Without i386 architecture support, Proton cannot load essential runtime libraries, causing Windows games to fail at launch regardless of your system’s hardware capabilities.
Enable 32-bit support with the following command:
sudo dpkg --add-architecture i386
Enabling the architecture lets APT install both 64-bit (amd64) and 32-bit (i386) packages, essential for Proton’s Windows game translation layer.
After enabling 32-bit architecture support, refresh the package database to recognize newly available i386 packages:
sudo apt update
The output now includes i386 package lists alongside the standard amd64 packages:
Get:1 http://archive.ubuntu.com/ubuntu resolute/main i386 Packages [1,024 kB] Get:2 http://archive.ubuntu.com/ubuntu resolute/universe i386 Packages [9,912 kB] ...
Install Steam on Ubuntu
Option 1: Install Steam with the Ubuntu Default Repository
The simplest installation method uses Ubuntu’s default repository, which provides tested packages verified for system stability. However, Ubuntu’s package freeze policy means the Steam launcher version may lag several weeks behind Valve’s latest release, potentially delaying access to new Proton updates or client features. For most users, this approach offers sufficient functionality with minimal setup effort.
First, enable Ubuntu’s Multiverse repository, which contains the steam-installer package, then refresh your package index:
sudo add-apt-repository multiverse
sudo apt update
To install Steam using the Ubuntu default repository, run the following command:
sudo apt install steam-installer steam-devices
After installation completes, verify Steam is ready by checking the package status:
dpkg -l | grep steam
The output confirms both packages installed successfully:
ii steam-devices 1:1.0.0.85~ds-2 amd64 Device support for Steam-related hardware ii steam-installer 1:1.0.0.85~ds-2 amd64 Valve's Steam digital software delivery system
Version numbers vary by Ubuntu release: 26.04 shows
1:1.0.0.85, while 24.04 has1:1.0.0.79and 22.04 has1.0.0.74. These are all valid. Steam updates itself to the latest version on first launch regardless of the launcher package version.
Option 2: Install Steam via Official Steam Repository
The official Steam repository delivers the latest client updates directly from Valve, ensuring you receive new features, Proton improvements, and compatibility fixes as soon as they release. This method requires manual repository configuration but provides faster access to bleeding-edge Steam updates compared to Ubuntu’s default repositories.
Import Steam GPG Signing Key
Download the GPG key that verifies Steam package authenticity. This key ensures APT only installs packages cryptographically signed by Valve, protecting against package tampering or repository compromise.
curl -fsSL https://repo.steampowered.com/steam/archive/stable/steam.gpg | sudo gpg --dearmor -o /usr/share/keyrings/steam.gpg
The curl command above downloads the GPG key over HTTPS and converts it to binary format in your system’s keyring directory.
Add Steam Repository
Add the official Steam repository using the modern DEB822 format. Ubuntu fully supports this format across all currently maintained releases, providing cleaner syntax and better multi-architecture handling than legacy repository formats.
echo "Types: deb
URIs: https://repo.steampowered.com/steam/
Suites: stable
Components: steam
Architectures: amd64 i386
Signed-By: /usr/share/keyrings/steam.gpg" | sudo tee /etc/apt/sources.list.d/steam.sources
The DEB822 entry you just saved supports both 64-bit and 32-bit packages for Proton compatibility.
Ubuntu 26.04, 24.04, and 22.04 LTS all support the DEB822
.sourcesformat shown above. Some tools still generate legacy.listfiles by default, but the modern format works across all current releases.
Refresh Package Index After Repository Import
Next, update the APT package information to recognize the newly imported repository:
sudo apt update
The output shows APT fetching package information from the new Steam repository:
Get:1 https://repo.steampowered.com/steam stable InRelease [6,840 B] Get:2 https://repo.steampowered.com/steam stable/steam amd64 Packages [1,648 B] Get:3 https://repo.steampowered.com/steam stable/steam i386 Packages [1,336 B] ...
Install Steam from Official Repository
Install the Steam launcher package from Valve’s repository:
sudo apt install steam-launcher
The steam-launcher package automatically pulls in required graphics dependencies through its recommended packages (steam-libs-amd64 and steam-libs-i386), which handle Mesa OpenGL libraries for AMD and Intel GPUs. Users with NVIDIA GPUs should install NVIDIA proprietary drivers for optimal gaming performance, while AMD and Intel users may benefit from updated Mesa drivers for the latest graphics features.
Verify the installation completed successfully:
dpkg -l | grep steam
The output shows steam-launcher and its library packages:
ii steam-launcher 1:1.0.0.85 amd64 Valve's Steam digital software delivery system ii steam-libs-amd64 1:1.0.0.85 amd64 Steam libraries metapackage ii steam-libs-i386 1:1.0.0.85 i386 Steam libraries metapackage
Option 3: Install Steam via Flatpak
Flatpak provides a containerized Steam installation that bundles all dependencies, making it ideal for users who prefer application sandboxing or want to avoid adding external APT repositories. The Flathub version receives updates directly from Valve and works identically across all Ubuntu versions.
Install Flatpak and Add Flathub Repository
If Flatpak is not already configured on your system, install it and add the Flathub repository. For detailed setup instructions, see the Flatpak installation guide for Ubuntu.
sudo apt install flatpak -y
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Install Steam from Flathub
Install Steam using Flatpak:
sudo flatpak install flathub com.valvesoftware.Steam -y
The first installation downloads approximately 1.5 GB of runtime dependencies and the Steam client. Subsequent updates are smaller.
Verify the Flatpak installation:
flatpak list | grep -i steam
Steam com.valvesoftware.Steam stable system flathub
Launch Steam via Flatpak from the terminal:
flatpak run com.valvesoftware.Steam
After the first launch, Steam also appears in your application menu like any other installed program.
Fix Repository Duplication (If Needed)
This section applies only to Option 2 (Valve’s official repository). Skip it if you installed Steam from Ubuntu’s default repository (Option 1) or Flatpak (Option 3).
Some Steam client versions automatically create legacy .list repository files (steam-stable.list and steam-beta.list) during first launch or after updates. When these duplicate your manually configured steam.sources file, APT reports “repository configured multiple times” warnings. These warnings are cosmetic and do not affect functionality, but you can eliminate them by removing the legacy files.
Check for duplicate repository files:
ls /etc/apt/sources.list.d/steam*
If only your manually created steam.sources appears, no action is needed:
/etc/apt/sources.list.d/steam.sources
If you see additional .list files, remove them:
sudo rm -f /etc/apt/sources.list.d/steam-beta.list /etc/apt/sources.list.d/steam-stable.list
After removing the legacy files, refresh the package index to confirm the warnings are gone:
sudo apt update
If Steam recreates these
.listfiles after a client update, simply remove them again. The duplicate warning is harmless, and yoursteam.sourcesfile remains the active repository configuration regardless of whether the legacy files exist.
Launch Steam
After installation, launch Steam using one of these methods depending on your installation type.
Launch from Terminal
For APT installations (Options 1 and 2), launch Steam from the terminal:
steam
Launch from Application Menu
Steam appears in your application menu after installation regardless of which method you used:
- Open Activities (GNOME) or the Applications menu (other desktop environments)
- Type “Steam” in the search field
- Click the Steam icon to launch

First-time Setup with Steam
Steam’s First-Launch Package Installation
When you launch Steam for the first time, a terminal window may appear prompting you to install additional runtime packages. These packages include compatibility libraries, font renderers, and other dependencies Steam requires for proper operation. Follow the on-screen instructions and allow the installation to complete.

If you enabled 32-bit support earlier, Steam may prompt you twice to install runtime packages, once for 64-bit components and again for 32-bit dependencies.
Steam Self-Update Process
Once launched, Steam automatically downloads and installs its latest components through a series of progress windows. This initial update fetches the current client binaries, runtime libraries, and compatibility tools. For most users, this process completes within a few minutes depending on connection speed.

Log in or Create a New Steam Account
Once the updates finish, the Steam Launcher login window will greet you. You can sign in with your existing Steam account or create a new one if you do not already have one.
To create a new account, click the “Create a new account” button and follow the on-screen instructions, providing the necessary information to set up your account. If you are signing in with an existing account, enter your account credentials and click “Log in.”

Verify Proton Compatibility
After logging in, Steam installation is complete. Before purchasing Windows-exclusive games, verify Proton compatibility through ProtonDB, a community-maintained database tracking how well Windows games run through Steam’s compatibility layer. Navigate to Settings > Compatibility and enable “Steam Play for all other titles” to access Windows games in your library.
Check ProtonDB ratings before buying Windows games to avoid compatibility issues. Games rated Gold or Platinum typically work flawlessly, while Bronze ratings may require configuration tweaks. Native Linux games display a SteamOS/Linux icon in the store and generally offer better performance than Windows games running through Proton.

Troubleshooting Common Issues
When diagnosing Steam or game problems, check the Steam logs stored in ~/.local/share/Steam/logs/. The console-linux.txt file contains runtime messages including container errors and library loading failures. For game-specific issues, each game’s log appears in ~/.local/share/Steam/steamapps/common/[game name]/ or the game’s Proton prefix directory.
Steam Won’t Launch or Crashes on Startup
If Steam fails to launch or crashes immediately after starting, run it from the terminal to view error messages:
steam 2>&1 | head -50
Common causes include missing 32-bit libraries (verify you ran dpkg --add-architecture i386) or graphics driver issues. If the output shows specific missing libraries, install them with apt install.
Ubuntu 24.04 and later include stricter AppArmor and user namespace restrictions that can affect sandboxed applications. If you see errors mentioning namespaces or AppArmor, try the Flatpak installation method (Option 3) or Valve’s official repository (Option 2) instead of Ubuntu’s default packages. For more details, see the AppArmor configuration guide.
Graphics Driver Issues
Poor gaming performance or graphical glitches typically indicate driver problems. First, verify your GPU is detected:
lspci | grep -i vga
Example output showing detected GPUs:
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060]
For NVIDIA GPUs, check if the proprietary driver is active:
nvidia-smi
A working NVIDIA driver displays driver version and GPU information. If this command fails with “command not found” or shows errors, install the NVIDIA drivers on Ubuntu.
For AMD or Intel GPUs, verify OpenGL rendering is working:
glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
If glxinfo is not found, install Mesa utilities with sudo apt install mesa-utils. AMD and Intel users benefit from keeping Mesa drivers current through the Mesa upgrade process.
Missing 32-bit NVIDIA Libraries
NVIDIA users may encounter errors like “missing libGL.so.1” or “wrong ELF class: ELFCLASS64” even after enabling i386 architecture. This occurs when the NVIDIA driver installation lacks 32-bit OpenGL libraries that Steam and Proton require.
Install the 32-bit NVIDIA libraries (replace 560 with your driver version):
sudo apt install libnvidia-gl-560:i386
To find your installed driver version, check with:
dpkg -l | grep nvidia-driver
Reboot after installing the 32-bit libraries for changes to take effect.
Proton Games Won’t Start
When Windows games fail to launch through Proton, first verify Steam Play is enabled in Settings > Compatibility > “Enable Steam Play for all other titles.” Check the game’s ProtonDB page for known issues and recommended Proton versions. Some games work better with specific Proton versions, which you can select in the game’s Properties > Compatibility tab. If a game still fails, try forcing a different Proton version such as Proton Experimental or GE-Proton.
Keyboard or Input Issues in Games
If certain keys, especially modifier keys like Ctrl or Alt, behave unexpectedly in games launched through Steam, start by checking your keyboard layout and input method settings in the desktop environment, along with the in-game key bindings. International layouts and custom input methods can occasionally expose bugs in how specific games or middleware handle keyboard events.
When problems only appear with one Steam installation method, testing an alternative packaging option (for example, the Ubuntu default repository build versus the official Valve repository) can help determine whether the issue is tied to a particular build or your wider system configuration. In some cases, switching the install source is enough to restore normal input behavior without further tweaks.
Disk Space Requirements
Modern titles often exceed 50-100 GB each, so a Steam library can swell faster than expected. Monitor available disk space regularly and consider moving your Steam installs to a separate partition or drive. The client supports custom library locations through Settings > Storage, letting you distribute games across multiple drives when your primary partition fills up.
Games Fail to Start When Library Is Under /usr/
If you store your Steam library under a path containing /usr (such as /usr/games/steam/), games will fail to launch without clear error messages. Check ~/.local/share/Steam/logs/console-linux.txt for entries like:
pressure-vessel-wrap: W: Not sharing path STEAM_COMPAT_DATA_PATH="/usr/games/steam/steamapps/compatdata/..." with container because "/usr" is reserved by the container framework
Steam’s pressure-vessel container framework reserves the /usr hierarchy for its own runtime libraries. Any Steam library path containing /usr will silently fail because pressure-vessel cannot share those directories with the container.
To fix this, move your Steam library to a directory outside /usr:
- In Steam, go to Settings > Storage
- Add a new library folder under your home directory (for example,
/home/username/SteamLibrary) - Move your games to the new library by right-clicking them in your library and selecting Properties > Local Files > Move Install Folder
After moving games to a non-reserved path, they should launch normally.
Additional Steam Commands
Update Steam
Steam updates itself automatically when launched. The underlying launcher package requires separate system updates.
For APT installations (Options 1 and 2), update via your package manager:
sudo apt update && sudo apt upgrade
For Flatpak installations (Option 3):
sudo flatpak update com.valvesoftware.Steam
Remove Steam
Removal steps vary depending on which installation method you used. All methods preserve your game files by default.
Remove APT Installation (Options 1 and 2)
Uninstall Steam and related packages:
sudo apt remove --purge steam* && sudo apt autoremove
If you used Option 2 (Valve’s official repository), also remove the repository configuration and GPG key:
sudo rm /etc/apt/sources.list.d/steam.sources /usr/share/keyrings/steam.gpg
sudo rm /etc/apt/sources.list.d/steam-beta.list /etc/apt/sources.list.d/steam-stable.list 2>/dev/null
Remove Flatpak Installation (Option 3)
Uninstall Steam via Flatpak:
sudo flatpak uninstall com.valvesoftware.Steam
Remove Game Data (Optional)
The following command permanently deletes all downloaded games, save files, and Steam configuration. Only run this if you want a complete removal and have backed up any saves you want to keep.
Remove all Steam user data including downloaded games:
rm -rf ~/.steam ~/.local/share/Steam
For Flatpak installations, game data is stored in a different location:
rm -rf ~/.var/app/com.valvesoftware.Steam
Frequently Asked Questions
Choose Ubuntu’s default repository for stability with minimal setup, Valve’s official repository for the fastest client and Proton updates, or Flatpak for containerized installation that works identically across all Ubuntu versions. All three methods provide the same gaming experience once installed.
Many Windows games compile as 32-bit executables for broader compatibility. Proton translates these 32-bit Windows binaries to Linux, requiring matching 32-bit Linux libraries (i386 architecture). Without i386 support, Proton cannot load the necessary runtime components for Windows game translation.
No. Uninstalling Steam removes only the launcher, leaving game files intact. Reinstalling Steam detects your existing library without re-downloading. To completely remove everything including games, manually delete the Steam data directories after uninstalling.
Yes. Uninstall your current Steam version, then install using a different method. Your game library remains in your home directory and Steam will detect it automatically. However, Flatpak stores data separately, so switching to or from Flatpak may require moving game files manually.
Yes, but with caveats. Steam can detect games on a shared NTFS partition, but Windows games running through Proton create Linux-specific Proton prefixes that Windows cannot use. Native Linux games and Windows games maintain separate compatibility data. Most users find it easier to let each OS manage its own game installations rather than sharing a library partition.
The steam-installer package lives in Ubuntu’s Multiverse repository (requires enabling via add-apt-repository multiverse) and integrates with Ubuntu’s driver management. The steam-launcher package from Valve’s repository typically ships newer client versions within days of release. For most gamers wanting the latest Proton improvements, steam-launcher is the better choice.
The Steam Snap package is not officially supported by Valve and frequently causes issues including failed launches, graphical glitches, and broken game compatibility. Ubuntu’s Software Center shows the Snap by default, but you should install Steam using APT (from Ubuntu’s multiverse or Valve’s repository) or Flatpak instead. This guide covers only the officially supported installation methods.
Games using kernel-level anti-cheat software (like Vanguard in Valorant, or certain configurations of Easy Anti-Cheat and BattlEye) typically cannot run on Linux. Some anti-cheat providers have added Linux support; check ProtonDB for current compatibility status. Games with invasive DRM or always-online requirements may also have issues. Native Linux games and single-player Windows titles generally work well.
Conclusion
Your Ubuntu system now has Steam installed with 32-bit library support for Proton, giving you access to thousands of native Linux titles and Windows games. Before purchasing Windows-only titles, check their ProtonDB ratings. Games rated Gold or Platinum typically run without issues. Enable Steam Play in Settings > Compatibility to unlock Windows games in your library, then start exploring the catalog.
Newbie question: why go to all this trouble when Ubuntu 24.04.1 LTS has Steam in its App Center?
Does the App Center’s install of Steam have Proton included?
Thanks for the question, Warren. Ubuntu’s App Center installs Steam via Snap, which works but comes with several limitations compared to the official
.debpackage shown in this guide.The Snap version often runs into issues with game library paths, file access permissions from Snap’s sandboxing, and slower launch times. Proton is included either way because it is part of Steam, but the Snap confinement can interfere with Proton, game mods, and external library locations.
The official Valve repository provides the native
.debpackage that integrates directly with Ubuntu without sandboxing, giving Steam better access to your system for improved game compatibility and fewer permission headaches. For quick installs with only a few native games, the App Center may be fine, but for Proton titles and custom libraries, the official repository is usually the smoother option.Hello, The method didn’t work for me on Ubuntu 24.04. However, using the Debian package provided on the official Steam website for download works. Thank you!
Thanks for the heads-up, Sol, and glad you got Steam running. On Ubuntu 24.04, there are some changes around AppArmor and unprivileged user namespaces that can cause problems for sandboxed apps, including Steam and some Electron-based tools. In a few cases, the traditional APT method and the official Debian package from Valve behave slightly differently under these new security rules.
For most users, using the official Steam
.debfrom Valve is a solid option if the repository-based method here fails, especially on newer Ubuntu releases. There are kernel and sysctl-level tweaks that can relax the new restrictions for affected apps, but they reduce system security and should only be considered as a last resort by experienced users who fully understand the trade-offs.I will update the guide to call this out more clearly for Ubuntu 24.04 users so others can choose between the repository setup and the official
.debdownload with the right expectations.Anecdotal, but I’d *not* use the Steam DEB, it caused weird keyboard behaviour on my (international) keyboard. More in point, the left CTRL died in all the games via Steam – and that’s not a insignificant key in most action games. 🙂
Thanks for sharing this, Espen. Input quirks like that are frustrating, especially when a core key stops working in every game. Issues with international keyboard layouts and modifier keys can sometimes show up in specific combinations of desktop environment, input method settings, and how Steam or individual games handle input, so it’s very helpful to have real-world reports like yours.
In general the official Steam
.debworks reliably for most setups, but your experience is a good reminder that there are edge cases where another install path (such as Flatpak, Snap, or even running games outside Steam where possible) might behave better. I’ll keep an eye out for similar keyboard reports and add a short troubleshooting note to the guide so users with international layouts know there are alternatives if they hit this kind of problem.when calling this:
echo deb [arch=amd64 signed-by=/usr/share/keyrings/steam.gpg] http://repo.steampowered.com/steam/ stable steam | sudo tee /etc/apt/sources.list.d/steam.list
I get: ‘zsh: bad pattern: [arch=amd64’
does anyone know why ?
Thanks for reporting this, E.P. The error comes from running that command in
zsh. Zsh treats the square brackets in[arch=amd64 signed-by=/usr/share/keyrings/steam.gpg]as a glob pattern instead of plain text, so it throwsbad pattern.You can fix it by either wrapping the whole
deb ...line in quotes, or by running the command in bash. For example, this works in both bash and zsh:Quoting the string prevents the shell from trying to interpret the square brackets as a pattern, so the repository line is written correctly to
/etc/apt/sources.list.d/steam.list.