Ubuntu 16.04+
For anyone still getting same error, if you are using nvidia driver, sometimes you will see that libGL.so.1 points to ambiguous libGL provided by both mesa and nvidia. To test this, you can run this command
$ sudo ldconfig -p | grep -i gl.so
The output was something like:
libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2
libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0
libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so
libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1
libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1
libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so
libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so
Now I just needed to remove the library provided by mesa and everything worked perfectly.
$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1
Update:
This issue no longer exists from Ubuntu 18.04 LTS.
rm /usr/lib/i386-linux-gnu/libGL.so.1
And enjoy your cookie :)
– FabricioFCarv Feb 16 '18 at 01:22mesa
folder in/usr/lib/i386-linux-gnu/
. I tried removing/usr/lib/i386-linux-gnu/libGL.so.1
, and steam said:You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1
– alephalpha Jul 05 '18 at 07:08sudo rm -rf /lib/x86_64-linux-gnu/libGL.so.1
fix it – Antoine Boucher Jan 31 '20 at 00:48