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
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.
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.