Steam

Steam is Article description::a digital distribution platform developed by Valve Corporation, which offers digital rights management (DRM), multiplayer gaming, video streaming and social networking services. Steam provides the user with installation and automatic updating of games on multiple computers, and community features such as friends lists and groups, cloud saving, and in-game voice and chat functionality. - Wikipedia, the free encyclopedia

Games

 * Official Steam Linux games list.

Dependencies
Create the following set of required Steam dependencies:

And then run:

USE flags
To enable the required USE flags for Steam dependencies under, add the the following file:

Update the system:

Kernel
Steam expects that, which requires kernel tmpfs support, is mounted prior to being started. should be mounted automatically by OpenRC and systemd during boot, but can also be mounted explicitly via :

Installation
The Steam installer downloads and installs the Steam client to the users home directory. This prevents Portage from managing the Steam client updates or the software installed by it. The Steam client is solely responsible for managing software installation and updates.

External repositories
The ebuild is available from anyc's steam-overlay repository, which is Gentoo's primary repository for Steam client and Steam-based games.

anyc's Steam repository
Install the required dependencies:

Install the Steam repository configuration:

Sync the Steam repository:

Install the ebuild:

Alternatively, install the ebuild to pull in all Steam related ebuilds:

eselect repository
Install and :

Add the Steam repository:

Install the ebuild:

Layman
Install layman:

Fetch the Steam repository:

Display the information about the specified repository:

Add the Steam repository:

Install the ebuild:

Manual
Fetch and extract the Steam installer:

Run the Steam installer:

If the Steam client crashes, try running:

Running Steam with the  option may be necessary each time the client wants to update.

Install the above Steam installer script:

Steam can be started with:

Manual with alternative installer script
The following installation method is almost identical to the manual installation method, except that an alternative Steam installer script is used.

Fetch the Steam installer and extract the required files:

Fetch and run Julian Ospald's (hasufell) Steam installer script:

If the installer script creates broken symbolic links when run with Dash, run the installer script with Bash instead:

Chroot
Steam can be run in a 64-bit multilib chroot on. The major advantage of a chroot is that Steam and its dependencies will be isolated from the root filesystem.

Create the chroot directory. If a 32-bit chroot is used, adjust the chroot directory accordingly.

Fetch and extract the stage3 tarball. If a 32-bit chroot is used, download the stage3 tarball instead.

Copy DNS information and ensure it's world-readable:

Create the ebuild repository directory:

Mount the necessary filesystems:

Chroot with and update the environment. If a 32-bit chroot is used, chroot with instead. The use of is not required on, and it is only used here for consistency.

The chroot should now be updated and configured accordingly. It is recommended to at least configure the timezone and enable sound support by installing.

Now create the Steam user with the same UID (usually 1000) as the local user. The local UID can be determined by running as the local user, outside of the chroot. Using the same UID will simplify the process of granting access to the X server from inside the chroot.

Install Steam from one of the above installation methods. When complete, exit the chroot:

Unmount the chroot directories:

Install to allow access to the X server from inside the chroot:

Logout, and then login. This allows the display manager or to process  and automatically grant all local connections to the X server from the local UID. This will not work if the Steam UID is different to that of the local UID. Either set the same UID when creating the Steam user, as was mentioned earlier, or if the Steam user already exists change the Steam UID with to match the local UID.

Alternatively, run to allow all local connections to the X server from any local UID. This is a potential security risk as any user could access the X server without authentication. To revoke access run

Next, create the following wrapper script to setup the chroot, substitute to the Steam user, and start Steam. The wrapper script has two user defined variables: chroot_bits and chroot_dir. The chroot_bits variable must be set to  for a 32-bit chroot, and   for a 64-bit chroot. The chroot_dir variable should be set to the location of the chroot directory.

Make the wrapper script executable:

Run the wrapper script as to start Steam:

Flatpak package from Flathub
A quiete simple, fast and clean method (e.g. you don't need to compile the required packages for 32bit again) to get Steam up and running is to use a the "com.valvesoftware.Steam" Flatpack package from.

Installation & Usage
Basically you need to follow these steps:

As root:

1. Install the flatpak-overlay, see

2. Emerge sys-apps/flatpak from the overlay

3. Download and install Steam and it's dependencies using Flatpak (everything will be installed to /var/lib/flatpak), see :

As user:

4. Run the Steam client. It will update itself and install the files of the users' instance into ~/.steam, ~/.local/share/Steam and ~/.var/app/com.valvesoftware.Steam directories.

Updating
As user:

1. The Steam client has it's own update functionality. Just use that (as user), to keep your user's Steam client instance up to date.

As root:

2. From time to time, it might be wise to sync the flatpak-overlay to include it in regular system maintenance (world updates).

3. To update the Flatpak/Flathub runtime and com.valvesoftware.Steam package, regulary run:

Known Issues
1. As of 23/March/2020 with latest Steam beta client, Vulkan based games do not work. The simple workaround, as described in, is to start Steam for the moment as follows:

2. In my case, the client's systray icon is not shown. I have no idea how to fix it, but for me it has no priority. You can just click the "empty space" in your systray to open the client.

Client troubleshooting
See Steam/Client troubleshooting.

Games troubleshooting
See Steam/Games troubleshooting.

Removing a manual installation
Remove the Steam dependencies:

Remove the Steam executable and Portage configuration:

Remove the Steam directory from the user accountː

Remove all files and directories from the user account which contain 'steam' (case-insensitive) in the name:

Removing an external repository installation
Remove the ebuild:

If it was installed, remove the ebuild:

Asking for help
The best place to ask for help is the Steam thread on the Gentoo Forums. If a solution to an issue is confirmed by others, add it to this page or the relevant troubleshooting subpage. Please do not remove content without discussion, unless it is obviously wrong.

External resources

 * Gentoo Forums - Native Steam client and source game engine
 * Gentoo Bugzilla - steam-installer ebuild (outdated)
 * ArchWiki - Steam
 * GitHub - Steam for Linux Client
 * Steam Community - Steam for Linux