Ubuntu – Problem with installing Steam on Ubuntu 15.04+

software installationsteam

Actually I have installed the new Ubuntu 15.04 64bit, and when I'm trying to install Steam on it, there is a problem.
In fact I have downloaded the deb package from steam website, installed it and when I start it nothing happens.
I tried to start it from terminal and what I've got

$ steam
Running Steam on ubuntu 15.04 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0_client)
libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

Best Answer

This was originally a problem with Steam on Ubuntu 15.04/15.10. Steam bundles old libs and are colliding with mesa drivers, that is also why closed drivers aren't seeing this problem. Update: It might also be that you are missing some things. See other mchid's answer.

There is an open bug in Steam's github.

The current workaround is to remove the old lib version, at least until valve fixes the issue in their startup script or something like that.

So enter these folders and do this (ignore the x86_64 if you only have a 32bit system):

cd $HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak
cd $HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak

If you have problem with the directory above then you should try this:

Some people have the .steam/steam/ubuntu12_32, others have only .steam/ubuntu12_32. If you don't have these folders, find the correct location by checking where your steam is looking for the user profile:

$ fgrep config=  /usr/games/steam

Use that to find your lib location:

[config value] + /ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
   \-> $HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu

It worked for me... but please note that if some game required that old lib from the steam runtime, it may crash (that is why valve should fix this)

Edit 2015-08-22:

As Steam now has a link in the $HOME/.steam/root that always points to the correct Steam install directory, this command should work for everybody and it simpler for a fast fix:

find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ -name "libstdc++.so.6" -exec mv "{}" "{}.bak" \; -print

Also, please remember that on each steam runtime update, you will probably need to run this.

Edit 2016-02-16:

Also see the mchid reply below, simply doing:

sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386

might be enough to fix this.

Edit 2016-10-23:

For ubuntu 16.10 the command was updated to remove more files that are breaking mesa drivers, so this new command should work:

find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ \( -name "libstdc++.so.6" -o -name "libgpg-error.so.0"  -o -name "libxcb.so.1" -o -name "libgcc_s.so.1" \) -exec mv "{}" "{}.bak" \; -print

For NVIDIA closed source drivers, see Vincent's reply below.

Edit 2017-01-08:

Probably final edit, the latest steam linux update should fix most, if not all problems! finally! :D

Edit 2017-08-03:

Sadly, returning from vacation found that some recent update again broke steam. So if you get this when starting, just after update download:

process 23148: arguments to dbus_connection_ref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file dbus-connection.c line 2688.

and then steam crash, then you are hitting this bug, reported as non-fatal, but it do crash steam on same distros. workaround is this:

ln -s ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libdbus-1.so.3 ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libdbus-1.so.3

good luck

Related Question