Ubuntu 16.04 Steam only runs from terminal
Since you have a command (LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
) to launch it correctly, modify the .desktop
file to fix the menu icon so that clicking it runs that command. Do:
cd /usr/share/applications
and then type ls
to find the .desktop
file for Steam. Here I'm assuming it's called steam.desktop
, so check that, and correct the commands below if necessary. Make a backup copy
sudo cp steam.desktop steam-bak
(restore the backup if needed by doing mv steam-bak steam.desktop
) edit the original file:
sudo nano steam.desktop
find the first line that starts Exec=
(you can use ctrl+w to search in nano) and edit the line so it says:
Exec=bash -c "LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam"
Save the file and exit (ctrl+o then enter then ctrl+x)
Now click the steam icon in the menu to launch
Note to others: if the command LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
does not work for you, try changing DISPLAY=:0
to match your environment. First do echo $DISPLAY
and if the output is :0.0
, then instead of DISPLAY=:0
in the steam launch command, put DISPLAY=:0.0
Another possible fix: check System Settings > Software & Updates > Additional Drivers and enable the latest proprietary drivers (suggestion from a comment on another post that apparently worked for the OP of that post)
The errors are caused by outdated drivers and libraries bundled with Steam. This can be fixed by disabling them, so that Steam uses system files instead (this is why setting LD_PRELOAD
works). You could disable the file(s) throwing errors by renaming them:
mv /home/$USER/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5{,.disabled}
(there may be several libraries you need to do this to, and you may need to repeat after any updates/resyncing) In any case, it's not a problem with your system, but with Steam.
For comprehensive information see:
Epic Arch wiki post on troubleshooting Steam