WSL2解决/usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link问题

314

简短地记录一下。

复现条件

使用APT源安装tesseract-ocr软件包,报错

/usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

解决方法

  1. 以超级管理员权限启动CMD,运行以下命令
C:
cd \Windows\System32\lxss\lib
del libcuda.so
del libcuda.so.1
mklink libcuda.so libcuda.so.1.1
mklink libcuda.so.1 libcuda.so.1.1
  1. 重启wsl之后,输入以下命令
$ sudo ldconfig
  1. 重新安装WSL的CUDA驱动(以11.7为例)
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
$ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda-repo-wsl-ubuntu-12-2-local_12.2.2-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-12-2-local_12.2.2-1_amd64.deb
$ sudo cp /var/cuda-repo-wsl-ubuntu-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda
  1. 重启WSL
wsl --shutdown Ubuntu

问题来源

https://github.com/microsoft/WSL/issues/5548