On my 64-bit 13.10 laptop after installing nvidia-experimental-310 (which actually installs 319.60) bumblebee and primus were already there by default.
bumblebee and bumblebee-nvidia are 64-bit. primus and primuslibs:amd64 are 64-bit, but primuslibs:i386 and primuslibs-ia32 are both 32-bit.
In order to get steam to run (to find libGL.so.1) I had to create /etc/ld.so.conf.d/steam.conf containing:
Note that after adding or modifying anything in /etc/ld.so.conf.d/ you have to: sudo ldconfig
In order to get glxspheres (which is 32-bit) and optirun glxspheres to work I had to cp steam.conf glxspheres.conf in /etc/ld.so.conf.d/ and install libglu1-mesa:i386 and libxv1:i386. Note that glxspheres64 or optirun glxspheres64 worked before or after doing this.
However, I am new at Optimus graphics, so I have yet to have primusrun work for 64 or 32-bit graphics (it works for primusrun glxinfo). The following all core dump with no error message about why:
Different steam games may need certain launch parameters to use the fast nvidia graphics instead of Intel graphics (which is very slow). To get to launch parameters go to Steam Library, right click on a game on left, and go to Properties. On General tab click "Set Launch Options" For Source games (tf2 specifically, but also likely cs and hl2) the following launch parameters worked for me exactly "as shown" in one line (%command% is an automatic substitution):
LD_PRELOAD="libpthread.so.0 libGL.so.1" _GL_THREADED_OPTIMIZATIONS=1 optirun %command%
I started steam normally (using Intel graphics) and when I launched tf2 it used nvidia graphics. Not sure if it matters, but in /etc/ls.so.conf.d I also symlinked steam.conf to hl2_linux.conf (sudo ln -s steam.conf hl2_linux.conf) then: sudo ldconfig, just it case it needed to find 32-bit libs.
For other games you may need to experiment or search for parameters that work.