glxgears executados por um usuário normal não pode encontrar libGL.so.1
:
$ ldd /usr/bin/glxgears
linux-vdso.so.1 => (0x00007ffce3176000)
libGL.so.1 => not found
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd2c5381000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fd2c5047000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd2c4c7c000)
/lib64/ld-linux-x86-64.so.2 (0x0000563b86149000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fd2c4a5a000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd2c4856000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fd2c4651000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fd2c444b000)
Mas o sudo pode, em um diretório de instalação para drivers da AMD (o sistema tem GPUS de ambos os fabricantes):
$ sudo ldd /usr/bin/glxgears
linux-vdso.so.1 => (0x00007ffcb6b8c000)
libGL.so.1 => /opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f89792ec000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8978fe3000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f8978ca9000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f89788de000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f89786c1000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f89784af000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f89782ab000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f89780a5000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f8977ea3000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f8977c89000)
libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f8977a86000)
libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f8977883000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f897767d000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f897745b000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f8977255000)
libdrm.so.2 => /opt/amdgpu-pro/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f8977040000)
libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f8976e3d000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f8976c36000)
/lib64/ld-linux-x86-64.so.2 (0x000055ac620c0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8976a31000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f897682d000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f8976626000)
E também é possível encontrar muitas outras bibliotecas.
echo $LD_LIBRARY_PATH
retorna vazio para usuário normal e root. O ponto desta questão não é encontrar uma solução alternativa usando LD_LIBRARY_PATH.
ldd
não diz onde está faltando de . A: Use -v:
ldd -v /usr/bin/glxgears
linux-vdso.so.1 => (0x00007ffc90b70000)
libGL.so.1 => /opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f2bf1faf000)
Onde está a lista de locais para procurar uma determinada biblioteca? O Sudo conseguiu encontrá-lo, então onde o sistema mantém essa informação?
Como posso alterar a configuração para que o sistema procure por libGL.so.1
nos arquivos instalados da Nvidia e não na instalação do amdgpu-pro.