I recently made the jump into stretch. Previously I had steam working fine, and the games I played loaded. After the update, steam itself wouldn’t even start. This appears to be a common issue between the “steam-runtime”, which ships olds libraries no longer compatible with others shipped in the system.
Luckily there’s a fair amount of documentation, however, it was not individually sufficient:
- Steam on the Debian Wiki
- libstdc++.so.6 issues with steam-runtime
- Steam troubleshooting on archlinux
- Missing swrast dynamic library
- Steam won’t run on Ubuntu 16.04
The main strategy of deleting conflicting libraries enabled steam to start, but some games would randomly fail to start while others worked. In the end I use a two pronged approach: one script to delete a number of the conflicting libraries, and a wrapper script to start steam.
Script to remove libraries
#!/bin/bash
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libtinfo.so.5
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgpg-error.so.0
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3
find ~/.local/share/Steam/ubuntu12_32/steam-runtime -name libgcc_s.so\* -delete
find ~/.local/share/Steam/ubuntu12_32/steam-runtime -name libxcb.so\* -delete
Wrapper to start steam
#!/bin/bash
env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1 /$LIB/libgpg-error.so.0' steam &
Troubleshooting Tips
- When steam launches a game from the interface, most of the debug information is available in /var/log/syslog. In the case of Train Fever, the game’s log was empty, but /var/log/syslog had all the information concerning which drivers failed to load, etc.
- If you’re having issues with steam starting, run “LIBGL_DEBUG=verbose steam” - there will be lots of information about libraries that fail to load.