WSL libcuda 不是符号链接

WSL libcuda 不是符号链接

当我在 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

相关内容