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. Unlike proprietary gaming platforms, Steam’s Proton technology translates Windows DirectX calls to Linux-compatible Vulkan graphics, enabling smooth gameplay for Windows-exclusive titles without dual-booting.
This guide walks you through installing Steam on Ubuntu using APT (Ubuntu’s package manager, similar to Windows Update), enabling 32-bit library support for Proton compatibility, and configuring the necessary graphics dependencies. Both the default repository method and Valve’s official Steam repository are covered so you can balance stability with the fastest client updates.
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
Running this command updates your Ubuntu system packages and ensures you have the latest versions installed.
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.
Install curl with the following command:
sudo apt install curl -y
The package handles downloading the GPG key used to verify Steam packages during installation and updates.
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
Select Steam APT Installation Method
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
The previous command installs the Steam installer and required device packages from the Ubuntu default repository.
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 22.04 LTS is the oldest currently supported release. All current versions (22.04 LTS, 24.04 LTS, and future releases) fully support the
.sourcesformat shown above even though some commands still generate legacy.listfiles by default.
Refresh Package Index After Repository Import
Next, update the APT package information to recognize the newly imported repository:
sudo apt update
Running sudo apt update refreshes your system’s package information to include packages from the newly added Steam repository.
Install Steam with Graphics Dependencies
Install Steam along with the Mesa OpenGL libraries required for graphics rendering. Mesa provides the open-source OpenGL and Vulkan implementations used by AMD and Intel GPUs, while also serving as a fallback for NVIDIA systems. Both 64-bit and 32-bit versions ensure compatibility with Proton’s Windows game translation.
sudo apt install \
libgl1-mesa-dri:amd64 \
libgl1-mesa-dri:i386 \
libgl1-mesa-glx:amd64 \
libgl1-mesa-glx:i386 \
steam-launcher
Executing the package installation pulls down Steam and Mesa’s OpenGL drivers for both architectures. Users with NVIDIA GPUs should install NVIDIA proprietary drivers for optimal gaming performance, while AMD and Intel users benefit from updated Mesa drivers for the latest graphics features.
Fix Repository Duplication (If Needed)
Skip this section if you installed Steam from Ubuntu’s default repository (Option 1). That note applies only to users who configured the official Steam repository manually.
Some Steam client versions automatically create additional repository files (steam-stable.list and steam-beta.list) during installation, causing APT to report duplicate repository warnings during updates. These files duplicate the repository configuration you created manually and should be removed if they appear.
Check for duplicate repository files:
ls /etc/apt/sources.list.d/steam*
If you see multiple Steam repository files beyond your manually created steam.sources, remove the auto-generated duplicates:
sudo rm /etc/apt/sources.list.d/steam-beta.list
sudo rm /etc/apt/sources.list.d/steam-stable.list
After deleting the duplicates, create read-only placeholder files so the Steam client cannot recreate conflicting entries while still keeping steam.sources as the authoritative repository definition:
sudo touch /etc/apt/sources.list.d/steam-beta.list /etc/apt/sources.list.d/steam-stable.list
sudo chmod 444 /etc/apt/sources.list.d/steam-beta.list /etc/apt/sources.list.d/steam-stable.list
After removing duplicate files, refresh the package index to verify the configuration works correctly:
sudo apt update
That cleanup resolves “repository configured multiple times” warnings during APT operations.
Launching Steam User Interface
Launch Steam from Terminal
Launch Steam directly from your terminal with the following command:
steam
Launch Steam from Application Menu
Most users prefer launching Steam from the desktop application menu rather than the terminal:
- Click on the “Activities” or “Applications” menu, depending on your Ubuntu desktop environment.
- Search for “Steam” in the search bar.
- Click on the “Steam” icon to launch the application.

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
Steam Won’t Launch or Crashes on Startup
If Steam fails to launch or crashes immediately after starting, missing 32-bit libraries often cause the problem. Verify you enabled i386 architecture support and installed all required Mesa libraries. Additionally, check for conflicting processes by running Steam from the terminal to view error messages:
steam 2>&1 | grep -i error
Running steam 2>&1 | grep -i error launches Steam and filters output to display only error messages, helping identify specific missing dependencies or configuration problems.
On Ubuntu 24.04 LTS and onwards, additional AppArmor and unprivileged user namespace hardening can sometimes prevent sandboxed applications like Steam or certain Electron-based launchers from starting correctly, even when all libraries are installed. If you see errors mentioning user namespaces or AppArmor restrictions and the default Ubuntu repository build of Steam fails, try installing Steam from Valve’s official repository instead, as described earlier in this guide. Kernel or sysctl-level workarounds exist but reduce system security and are best left to experienced users who fully understand the trade-offs.
For readers who want to understand how AppArmor confinement works on Ubuntu in more detail, see the dedicated AppArmor configuration guide on Ubuntu.
Graphics Driver Issues
Poor gaming performance or graphical glitches typically indicate driver problems. NVIDIA users should install proprietary NVIDIA drivers instead of relying on open-source Nouveau drivers. AMD and Intel users benefit from keeping Mesa drivers current through the Mesa upgrade process. Verify your graphics configuration with GPU Viewer to confirm proper driver detection.
Proton Games Won’t Start
When Windows games fail to launch through Proton, first verify Steam Play is enabled in Settings > Compatibility. Check the game’s ProtonDB page for known issues and recommended Proton versions. Some games require specific Proton versions available through Steam’s compatibility tool dropdown in game properties. Furthermore, ensure all 32-bit libraries installed correctly by reinstalling the Mesa packages listed earlier.
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.
Additional Steam Commands
Update Steam
Steam updates itself automatically when you launch the client, but the underlying launcher package and system libraries require manual APT updates. Keeping these components current ensures compatibility with new Proton versions, runtime libraries, and graphics API improvements. Periodically check for available updates to maintain optimal gaming performance.
Check for available Steam launcher updates:
sudo apt update
To apply the available updates, run the following command:
sudo apt upgrade
Remove Steam
Completely removing Steam from your Ubuntu system requires uninstalling the launcher package and cleaning up repository sources. This process removes the Steam client but preserves your downloaded game files in ~/.steam/steam/steamapps, allowing reinstallation without re-downloading your library.
First, uninstall the Steam launcher and related packages:
sudo apt remove steam*
Next, for users who installed via the official Steam repository (Option 2), remove the repository configuration file to prevent APT from checking Steam’s repository during updates:
sudo rm /etc/apt/sources.list.d/steam.sources
Finally, remove the GPG signing key to complete the cleanup:
sudo rm /usr/share/keyrings/steam.gpg
Frequently Asked Questions
Ubuntu’s repository offers tested packages with guaranteed stability, while Valve’s official repository delivers the latest client updates and Proton improvements immediately. Choose Ubuntu’s repository for minimal maintenance, or Valve’s repository if you want bleeding-edge Proton compatibility fixes for newer Windows games.
Many Windows games compile as 32-bit executables for broader compatibility, even when running on 64-bit systems. Proton translates these 32-bit Windows binaries to Linux, which requires matching 32-bit Linux libraries (i386 architecture) to handle the translated calls. Without i386 support, Proton cannot load the necessary runtime components.
No. The apt remove command removes only the Steam launcher, leaving your game files intact in ~/.steam/steam/steamapps. Reinstalling Steam detects the existing library and makes your games playable without re-downloading. To completely remove everything including games, manually delete the ~/.steam directory after uninstalling.
Conclusion
Steam delivers comprehensive gaming capabilities on Ubuntu through both native Linux titles and Windows game compatibility via Proton. The installation process covers repository configuration, 32-bit library support for Proton, and Mesa graphics dependencies for AMD and Intel GPUs. Your Ubuntu system now runs a production-ready gaming platform with automatic updates, cloud save synchronization, and access to over 10,000 native Linux games plus thousands more Windows titles through Steam Play compatibility.
Just installed Debian 13.2 on a 64-bit Intel machine. Installed Nvidia driver for RTX-3050 from Debian repo. Tried to install Steam per this web page. Got the following error when I got to the step:
sudo apt update
Error: conflicting values set for option Signed-By regarding source
http://repo.steampowered.com/ steam
stable: /var/lib/extrepo/steam/keys.asc != /usr/share/keyrings/steam.gpg
The apt update command went ahead and downloaded and installed a bunch of stuff. Then I tried to start ‘steam’ and it wanted to update a lot more stuff, but at the end of these updates I got another error message:
Error: you are missing the following 32bit libraries, and steam may not run:
libGL.so.1
and a few lines down from that we see:
dlmopen steamui.so failed: libGL.so.1: wrong ELF class: ELFCLASS64
and ‘steam’ fails to start.
Eventually I fixed this step of the process by renaming (effectively deleting) this file:
/etc/apt/sources.list.d/extrepo_steam.sources
to:
/etc/apt/sources.list.d/extrepo_steam.sources.X
I then did ‘sudo apt update’ and it completed without error.
However, I then downloaded a game (“Age Of Mythlogy”) and tried to run it, but got a new set of errors. I will make a separate post about this.
Sorry for missing your first message, Steve. Good troubleshooting on both issues. The
Signed-Byconflict looks like it happened because both the extrepo method and manual Steam repository method were used on your system. Extrepo stores the GPG key at/var/lib/extrepo/steam/keys.asc, while the manual method uses/usr/share/keyrings/steam.gpg. If that was the case, your fix of removingextrepo_steam.sourceswas exactly right. Can you confirm whether both methods were used? That would help verify the cause.For the missing 32-bit
libGL.so.1error, this happens when NVIDIA’s 32-bit OpenGL libraries are not installed alongside the 64-bit driver. On Debian 13 with an RTX 3050, install the 32-bit driver libraries meta-package:This package pulls in
libgl1-nvidia-glvnd-glx:i386and all other 32-bit GL dependencies Steam needs. After installation, reboot and try launching Steam again. The “wrong ELF class: ELFCLASS64” error confirms Steam found only the 64-bit library when it needed the 32-bit version. Looking forward to your follow-up post about the Age of Mythology errors.thanks a lot!
Hello!
Following the step-by-step, installation confirmed.
Thank you, Joshua!
Djalma FC
Joshua,
In “Option 1: Install Steam with the Default Repository”
To install the steam-installer package, the user needs to have the *contrib* repository in his/her sources.list file. I am mentionning this because I will most likely be installing steam onto a friend’s computer.
More info:
https://packages.debian.org/bookworm/steam-installer
Gérard
Thanks Gérard, I have updated the guide.