Le sous-système Windows pour Linux (WSL) présente la même erreur
Dans le sous-système Windows pour Linux (WSL) sous Windows 10, il y a le fichier /usr/lib/i386-linux-gnu/mesa/libGL.so.1
n'existe pas. A la place, il y a le fichier /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
semble le remplacer. Cependant, si vous supprimez le fichier de remplacement, la bibliothèque ne fonctionne pas du tout.
Renommer la bibliothèque puis la renommer à nouveau résout le problème
Si vous renommez le fichier, puis le renommez à nouveau, les erreurs disparaissent et le système fonctionne beaucoup plus rapidement :
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
rick@alien:/mnt/e/etc$ sudo ldconfig -p | grep -i gl.so
libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
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
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
rick@alien:/mnt/e/etc$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1
rm: cannot remove '/usr/lib/i386-linux-gnu/mesa/libGL.so.1': No such file or directory
rick@alien:/mnt/e/etc$ sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
/usr/bin/zenity: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
rick@alien:/mnt/e/etc$ sudo mv /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.ORIGINAL /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
rick@alien:/mnt/e/etc$ lock-screen-timer
Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
rick@alien:/mnt/e/etc$
J'ai vérifié que le changement est persistant, c'est-à-dire que je ferme la fenêtre du terminal WSL et ouvre une nouvelle fenêtre.
Qu'est-ce qui utilise la bibliothèque ?
La bibliothèque est utilisée par yad
dans le verrouiller-écran-timer bash script mis à jour avec un support hybride pour WSL en plus d'Ubuntu. Yad est un fork de Zenity
c'est pourquoi vous voyez le style Zenity Gtk-Message:
dans le troisième message d'erreur ci-dessus.
Voici ce que le yad
ressemble à celle d'Ubuntu (dans WSL, c'est légèrement différent) :