Suppose that you have a 64bit (amd64) Debian Linux, and you want to run a 32bit application, that needs a library that, even though it appears installed on your system, the application cannot find it. The problem is that the library on your system is a 64bit one, but the application needs a 32bit one.
For example Android adt needs the 32bit libstd++c.so.6, even when you download the 64bit archive (as of today), Second Life needs a lot more, being a 32bit application.
In order to be able to run these application you proceed on a need basis by doing the following:
A. Make the system multi-architectured
# dpkg --add-architecture i386
# apt-get update
Now you can install packages either for the amd64 (64bit) or the i386 (32bit) architecture (see more in Multiarch Howto).
This step has to be done once.
B. Find the needed package
Suppose that you need the library libGLU.so.1
a) Find the name of the package by Searching packages.debian.org for packages containing files like libGLU.so.1
b) If more than one packages contain the library, you have to choose the one that fits your needs.
c) In our case one package was found the libglu1-mesa
The specific search was done for the unstable (sid) suite and the i386 architecture. You can change the suite or the architecture in the search page.
C. Install the i386 version of the package
# apt-get install libglu1-mesa:i386
This might install other required packages.
Repeat B and C for each library needed, and you have your 32bit application running on a 64bit Debian Linux.
Happy New Year 2014 !!