При обнаружении были загружены старые файлы, раскачивающиеся вверх / usr / lib32 / Я вывел их из строя со следующей командой:
sudo find /usr/lib32 -iname '*270.41.06*' -exec mv {} {}.old \;
И перезапустил X. Это сломало все 3D. Возгласы ликования. Используя предыдущую оценку, я видел, что было четыре сломанные ссылки:
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
Вместо того, чтобы вручную заменять ссылки на четыре файла, я отправился к Элронду, лорду Ривенделла, и поручил ему создать стипендию, может оказаться в ловушке в Морхдорхе, взобраться на гору Дум и устроить мне одну команду, чтобы принести меня (и тем самым я имею в виду всех нас) и в темноте связывают нас.
Хватит этого. Вот одна команда:
ls -l /usr/lib32/ | awk '{ print $8 " " $9 " " $10 }' | grep 270 | cut -d' ' -f1 | xargs -l1 sudo bash -c "rm /usr/lib32/\$0 && ln -s /usr/lib32/nvidia-current/\$0 /usr/lib32/\$0"
Разве она не эффектная. И это сработало. Теперь у меня есть 4 блестящие новые символические ссылки:
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
Затем я проверил, все ли сработало. Перед перезагрузкой я подумал, что должен проверить правильность ссылок:
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)
Отлично. Таким образом, мега-команда выполнила только две ссылки. Посмотрев немного дальше, кажется, что файлы libvdpau действительно живут в /usr/lib32/nvidia-current/vdpau/.
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
По крайней мере, они правильно (если немного неловко) связаны. Время для тестирования.