当我在 WSL 上使用 Ubuntu 20.04 进行更新时,收到以下消息:
/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
我怎样才能解决这个问题?
答案1
我也遇到了同样的问题,但说实话,我还没有尝试过这个建议的解决方法。我现在只能忍受它。这真的是一条无害的消息。
您可以找到开放的WSL 问题在这里更多阅读,但总结一下:
正如一位 WSL 开发人员所说此评论:
出于很多原因,我们不建议清理 System32
我同意这一点,这主要是我没有尝试下面推荐的修复方法的原因。
其中几个建议的修复方法会导致 CUDA 开发出现问题,所以我也没有尝试过。
这主要修复似乎是以Windows 管理员身份(而不是 WSL)
libcuda.so
删除libcuda.so.1
的。C:\Windows\System32\lxss\lib
然后,在 WSL 中:
sudo ln -sr /mnt/c/Windows/System32/lxss/lib/libcuda.so.1.1 /mnt/c/Windows/System32/lxss/lib/libcuda.so.1 sudo ln -sr /mnt/c/Windows/System32/lxss/lib/libcuda.so.1.1 /mnt/c/Windows/System32/lxss/lib/libcuda.so
我对上述命令做了一些细微的(未经测试的)更改,以便(a)使用
sudo
(这是必需的),以及(b)使用完全限定路径和选项ln -r
。这只是意味着您不需要提前cd
进入目录。如果我提供的版本有任何问题,请返回到该帖子中的说明。
答案2
还有另一种适合我的解决方案:
以管理员身份打开 cmd 并进入 C:\Windows\System32\lxss\lib
删除 libcuda.so 和 libcuda.so.1(您也可以在 Windows 资源管理器中执行此操作)
在 cmd 中运行 wsl -e /bin/bash,您应该已经在 /mnt/c/Windows/System32/lxss/lib 中,现在您有权限创建符号链接:
ln -s libcuda.so.1.1 libcuda.so.1
ln -s libcuda.so.1.1 libcuda.so
答案3
请按照以下解决方案操作https://forums.developer.nvidia.com/t/wsl2-libcuda-so-and-libcuda-so-1-should-be-symlink/236301
cd /usr/lib/wsl/lib
sudo rm libcuda.so libcuda.so.1
sudo ln -s libcuda.so.1.1 libcuda.so.1
sudo ln -s libcuda.so.1 libcuda.so
sudo ldconfig