问题说明

慕雪遇到的情况是wsl2安装的ubuntu22.04在apt安装软件的时候就会出现这个报错,无论安装什么软件都会有

1
/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

博客参考

网上原有的解决方法是:
/usr/lib/wsl/lib中的文件软连接到/usr/lib/wsl/lib2中。

该方法会导致后续出现

  • 问题1:NVIDIA-SMI couldn't find libnvidia-ml.so library in your system.
  • 问题2:error code is libcuda.so: cannot open shared object file: No such file or directory

我的解决方法是:删除或备份/usr/lib/wsl/lib中的libcuda.solibcuda.so.1,然后建立对libcuda.so.1.1的软连接。

注意,cp备份原本的时候不能直接备份到/usr/lib/wsl/lib/目录中,因为下一次启动时这个目录会被系统自动处理,内部的.bak文件会被删除。

1
2
3
4
5
6
7
8
9
## 备份原本的
sudo cp /usr/lib/wsl/lib/libcuda.so ~/libcuda.so.bak
sudo cp /usr/lib/wsl/lib/libcuda.so.1 ~/libcuda.so.1.bak
## 删除原本的
sudo rm -f /usr/lib/wsl/lib/libcuda.so
sudo rm -f /usr/lib/wsl/lib/libcuda.so.1
## 进行软连接
sudo ln -s /usr/lib/wsl/lib/libcuda.so.1.1 /usr/lib/wsl/lib/libcuda.so.1
sudo ln -s /usr/lib/wsl/lib/libcuda.so.1 /usr/lib/wsl/lib/libcuda.so

修改后的效果如下,libcuda.solibcuda.so.1实际上都指向libcuda.so.1.1

1
2
3
4
5
6
❯ ll
total 216M
-r-xr-xr-x 1 root root 11M Jan 13 06:30 libcudadebugger.so.1
lrwxrwxrwx 1 root root 29 Feb 1 15:52 libcuda.so -> /usr/lib/wsl/lib/libcuda.so.1
lrwxrwxrwx 1 root root 31 Feb 1 15:52 libcuda.so.1 -> /usr/lib/wsl/lib/libcuda.so.1.1
-r-xr-xr-x 1 root root 155K Jan 13 06:30 libcuda.so.1.1

你以为这样就能解决问题?错啦!重启一下wsl,就会发现文件被系统重置回去了。考虑到这个报错什么都不会影响,在Linux里面我也用不上cuda,不管他了。此问题目前未找到彻底的解决办法!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
❯ ls /usr/lib/wsl/lib -al
total 220820
drwxr-xr-x 1 root root 60 Jul 29 05:58 .
drwxr-xr-x 4 root root 4096 Jan 26 2024 ..
-r-xr-xr-x 1 root root 10593576 Jan 13 2024 libcudadebugger.so.1
-r-xr-xr-x 1 root root 158304 Jan 13 2024 libcuda.so
-r-xr-xr-x 1 root root 158304 Jan 13 2024 libcuda.so.1
-r-xr-xr-x 1 root root 158304 Jan 13 2024 libcuda.so.1.1
-r-xr-xr-x 1 root root 6880344 Oct 20 2023 libd3d12core.so
-r-xr-xr-x 1 root root 801840 Oct 20 2023 libd3d12.so
-r-xr-xr-x 1 root root 942048 Mar 25 23:34 libdxcore.so
-r-xr-xr-x 1 root root 11123896 Jan 13 2024 libnvcuvid.so
-r-xr-xr-x 1 root root 11123896 Jan 13 2024 libnvcuvid.so.1
-r-xr-xr-x 1 root root 113395360 Jan 13 2024 libnvdxdlkernels.so
-r-xr-xr-x 1 root root 555624 Jan 13 2024 libnvidia-encode.so
-r-xr-xr-x 1 root root 555624 Jan 13 2024 libnvidia-encode.so.1
-r-xr-xr-x 1 root root 234568 Jan 13 2024 libnvidia-ml.so.1
-r-xr-xr-x 1 root root 362960 Jan 13 2024 libnvidia-opticalflow.so
-r-xr-xr-x 1 root root 362960 Jan 13 2024 libnvidia-opticalflow.so.1
lrwxrwxrwx 1 root root 15 Jul 29 05:58 libnvoptix_loader.so.1 -> libnvoptix.so.1
-r-xr-xr-x 1 root root 68552 Jan 13 2024 libnvoptix.so.1
-r-xr-xr-x 1 root root 67924736 Jan 13 2024 libnvwgf2umx.so
-r-xr-xr-x 1 root root 686416 Jan 13 2024 nvidia-smi

原文版权说明

1
2
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pl23k/article/details/131336220

同时可以参考:WSL libcuda.so.1 is not a symbolic link 的解决方法 | ✨kiraの博客