Steam

''Steam is a digital distribution platform developed by Valve Corporation offering digital rights management (DRM), multiplayer gaming 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.
 * SteamDB 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.

Manual
Fetch and extract the Steam installer:

Run the Steam installer:

Install the above Steam installer script:

Steam can be started with:

To avoid restarting or running two X servers in parallel, to the Steam user, and use  to give the Steam user access to the running X server. Refer to bash-steam-launcher for details.

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:

Overlay
The ebuild is available from anyc's Steam overlay or the Gentoo Gamers overlay.

anyc's Steam overlay
anyc's Steam overlay is the primary Steam overlay repository. The Gentoo Gamers overlay occasionally pulls in changes from anyc's Steam overlay, and usually does not have the latest ebuild available.

Install the Steam overlay repository configuration:

Sync the Steam overlay repository:

Install the ebuild:

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

Layman
Install layman:

Add the Steam overlay:

Set the Portage overlay directory:

Install the ebuild:

Chroot
It is possible to run Steam in a 32-bit chroot on without relying on multilib.

Create the chroot directory:

Fetch and extract the stage tarball:

Copy DNS information:

Create the Portage directory:

Mount the necessary filesystems:

Chroot with, which is provided by the package, and update the environment:

Create the Steam user:

Next, install Steam from one of the above installation methods. When complete, create the following wrapper script to setup the chroot, to the Steam user, and start Steam:

Although the above script uses D-Bus, it is possible to run Steam without it, but a manual method is required to connect the X server from within the chroot.

Steam Segfaults
If steam segfaults in your chroot, you'll have to leave the "remember my password" box unchecked. If you already checked it you can run "steam --reset" in your chroot to reset steam's runtime and login data (this will not delete games).

Client troubleshooting
See Steam/Client troubleshooting.

Games troubleshooting
See Steam/Games troubleshooting.

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