Ao descobrir que havia um carregamento de arquivos antigos em / usr / lib32 /, movi-os para fora com o seguinte comando:
sudo find /usr/lib32 -iname '*270.41.06*' -exec mv {} {}.old \;
E reiniciei o X. Isso quebrou tudo em 3D. Huzzah Usando um comentário anterior, pude ver que havia quatro links quebrados:
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep 270
libcuda.so.1 -> libcuda.so.270.41.06
libGL.so.1 -> libGL.so.270.41.06
libvdpau.so.1 -> libvdpau.so.270.41.06
libvdpau_trace.so -> vdpau/libvdpau_trace.so.270.41.06
Em vez de substituir manualmente os links de quatro arquivos, fui a Elrond, Lord of Rivendell e lhe encarreguei de criar uma irmandade que pudesse entrar em conflito com Morhdorh, subir até o Monte Doom e criar um comando para mim (e por isso eu quero dizer todos nós) e na escuridão nos ligam.
Chega disso. Aqui está o único comando:
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep 270 | cut -d' ' -f1 | xargs -l1 sudo bash -c "rm /usr/lib32/\ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep '/nvidia-current'
libcuda.so.1 -> /usr/lib32/nvidia-current/libcuda.so.1
libGL.so.1 -> /usr/lib32/nvidia-current/libGL.so.1
libOpenCL.so -> nvidia-current/libOpenCL.so
libvdpau.so.1 -> /usr/lib32/nvidia-current/libvdpau.so.1
libvdpau_trace.so -> /usr/lib32/nvidia-current/libvdpau_trace.so
&& ln -s /usr/lib32/nvidia-current/\ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep '/nvidia-current' | cut -d' ' -f3 | xargs file
/usr/lib32/nvidia-current/libcuda.so.1: symbolic link to 'libcuda.so.270.41.19'
/usr/lib32/nvidia-current/libGL.so.1: symbolic link to 'libGL.so.270.41.19'
/usr/lib32/nvidia-current/libvdpau.so.1: ERROR: cannot open '/usr/lib32/nvidia-current/libvdpau.so.1' (No such file or directory)
/usr/lib32/nvidia-current/libvdpau_trace.so: ERROR: cannot open '/usr/lib32/nvidia-current/libvdpau_trace.so' (No such file or directory)
/usr/lib32/\sudo rm /usr/lib32/libvdpau{,_trace}.so*
sudo ln -s /usr/lib32/{nvidia-current/vdpau/,}libvdpau.so*
sudo ln -s /usr/lib32/{nvidia-current/vdpau/,}libvdpau_trace.so*
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep '/nvidia-current' | cut -d' ' -f3 | xargs file
/usr/lib32/nvidia-current/libcuda.so.1: symbolic link to 'libcuda.so.270.41.19'
/usr/lib32/nvidia-current/libGL.so.1: symbolic link to 'libGL.so.270.41.19'
/usr/lib32/nvidia-current/vdpau/libvdpau.so.270.41.19: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib32/nvidia-current/vdpau/libvdpau_trace.so.270.41.19: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
"
Ela não é espetacular? E funcionou. Agora tenho 4 novos links simbólicos brilhantes:
sudo find /usr/lib32 -iname '*270.41.06*' -exec mv {} {}.old \;
Eu então verifiquei se tudo havia funcionado. Antes de reiniciar, pensei em verificar se os links estavam corretos:
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep 270
libcuda.so.1 -> libcuda.so.270.41.06
libGL.so.1 -> libGL.so.270.41.06
libvdpau.so.1 -> libvdpau.so.270.41.06
libvdpau_trace.so -> vdpau/libvdpau_trace.so.270.41.06
Ótimo. Então o mega-comando só fez dois links certos. Depois de olhar um pouco mais, parece que os arquivos libvdpau
realmente vivem em /usr/lib32/nvidia-current/vdpau/
. Não mexer neste momento:
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep 270 | cut -d' ' -f1 | xargs -l1 sudo bash -c "rm /usr/lib32/\ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep '/nvidia-current'
libcuda.so.1 -> /usr/lib32/nvidia-current/libcuda.so.1
libGL.so.1 -> /usr/lib32/nvidia-current/libGL.so.1
libOpenCL.so -> nvidia-current/libOpenCL.so
libvdpau.so.1 -> /usr/lib32/nvidia-current/libvdpau.so.1
libvdpau_trace.so -> /usr/lib32/nvidia-current/libvdpau_trace.so
&& ln -s /usr/lib32/nvidia-current/\ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep '/nvidia-current' | cut -d' ' -f3 | xargs file
/usr/lib32/nvidia-current/libcuda.so.1: symbolic link to 'libcuda.so.270.41.19'
/usr/lib32/nvidia-current/libGL.so.1: symbolic link to 'libGL.so.270.41.19'
/usr/lib32/nvidia-current/libvdpau.so.1: ERROR: cannot open '/usr/lib32/nvidia-current/libvdpau.so.1' (No such file or directory)
/usr/lib32/nvidia-current/libvdpau_trace.so: ERROR: cannot open '/usr/lib32/nvidia-current/libvdpau_trace.so' (No such file or directory)
/usr/lib32/\sudo rm /usr/lib32/libvdpau{,_trace}.so*
sudo ln -s /usr/lib32/{nvidia-current/vdpau/,}libvdpau.so*
sudo ln -s /usr/lib32/{nvidia-current/vdpau/,}libvdpau_trace.so*
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep '/nvidia-current' | cut -d' ' -f3 | xargs file
/usr/lib32/nvidia-current/libcuda.so.1: symbolic link to 'libcuda.so.270.41.19'
/usr/lib32/nvidia-current/libGL.so.1: symbolic link to 'libGL.so.270.41.19'
/usr/lib32/nvidia-current/vdpau/libvdpau.so.270.41.19: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib32/nvidia-current/vdpau/libvdpau_trace.so.270.41.19: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
"
Pelo menos eles estão adequadamente ligados (se um pouco desajeitados). Hora de testar.