Steam нуждается в большом количестве 32-битных библиотек из вашей системы. Если какой-либо из них отсутствует, исполняемый файл Steam сработает.
В openSUSE вы можете проверить, какой пакет предоставляет определенную библиотеку с помощью команды zypper wp libpng12.so.0.
На Ubuntu нет такой простой способ, но этот сайт достаточно хорошо объясняет процесс.
Полный список, необходимый для запуска Steam:
libGL.so.1
libX11.so.6
libXau.so.6
libXext.so.6
libXi.so.6
libXrandr.so.2
libXrender.so.1
libappindicator.so.1
libasound.so.2
libc.so.6
libcairo.so.2
libdbus-1.so.3
libdl.so.2
libfontconfig.so.1
libfreetype.so.6
libgcc_s.so.1
libgdk-x11-2.0.so.0
libgdk_pixbuf-2.0.so.0
libglib-2.0.so.0
libgobject-2.0.so.0
libgtk-x11-2.0.so.0
libm.so.6
libnspr4.so
libnss3.so
libnssutil3.so
libpango-1.0.so.0
libpangocairo-1.0.so.0
libpangoft2-1.0.so.0
libplc4.so
libpng12.so.0
libpthread.so.0
librt.so.1
libsmime3.so
libstdc++.so.6
libsteam.so
libxcb.so.1
libz.so.1
Если вы хотите быстро узнать, чего не хватает , запустите следующую команду:
strace -E LD_LIBRARY_PATH=/home/USERNAME/Steam/ubuntu12_32/ -e trace=open /home/USERNAME/Steam/ubuntu12_32/steam (замените USERNAME дважды своим именем вашей учетной записи на вашем Linux)
Он даст вам вывод чего-то подобного в одной из последних строк :
open("/home/user/Steam/ubuntu12_32/libspeex.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Если нет строки, после которой не упоминается ENOENT, вам придется искать, какой пакет предоставляет общую библиотеку (libspeex.so.1 в этом case) в соответствии с учебником выше.