Why are my 32bit OpenGL libraries pointing to mesa instead of nvidia, and how do I fix it?

Option 1: Try running sudo ldconfig in a terminal. Reboot and try.

Option 2: If this doesn't sort it, you will have to manually add the directory of the NVidia libs (/usr/lib32) to the ldconfig configuration file (/etc/ld.so.conf.d/libc.conf) and then re-run ldconfig (as root of course)

EDIT: I would make a copy of libc.conf before changing it.


When I reinstalled the Nvidia drivers, all mesa OpenGL drivers were removed from the library cache. My library cache looked like this:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so

No 32bit drivers there! Luckily, after a quick search, I found Nvidia's 32bit drivers under /usr/lib32. I added that path to a file under /etc/ld.so.conf.d/ (any file will do, you can even make a new file) and ran sudo ldconfig. My cache now looks like this:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib32/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libGL.so (libc6) => /usr/lib32/libGL.so

And Steam works perfectly!