Steam needs a lot of 32 bit libraries from your system.
If any of these are missing, the Steam executable will crash.

On openSUSE you can check what package provides a specific library with the command `zypper wp libpng12.so.0`

.

On Ubuntu there is no such an easy way, but this site explains the process above quite well.

The full list required for starting 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
```

If you want to find out quickly what is missing, run the following command:

`strace -E LD_LIBRARY_PATH=/home/USERNAME/Steam/ubuntu12_32/ -e trace=open /home/USERNAME/Steam/ubuntu12_32/steam`

(replace USERNAME twice with your account name on your Linux)

It will give you an output something like this in one of the last lines:

`open("/home/user/Steam/ubuntu12_32/libspeex.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)`

If there is no line after which doesn't mention ENOENT, you will have to search which package provides the shared library (libspeex.so.1 in this case) according to the tutorial above.