WSL libcuda 不是符号链接

Tho*_*rry 16 windows-subsystem-for-linux wsl2

当我在 WSL 上使用 Ubuntu 20.04 进行更新时,我收到以下消息:

/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Not*_*1ds 15

我也有同样的问题,但说实话,我还没有尝试过这个建议的修复方法。我现在只是忍受它。这确实是一条无害的消息。

您可以在此处找到开放的WSL 问题以进行更多阅读,但总结一下:

  • 正如一位 WSL 开发人员在评论中所说:

    出于很多充分的理由,不建议破坏您的 System32

    我同意这一点,这主要是我没有尝试下面推荐的修复方法的原因。

  • 那里建议的几个修复会导致 CUDA 开发出现问题,所以我也没有尝试过这些。

  • 主要修复似乎是在 Windows 中以管理员身份(而不是从 WSL 中)删除libcuda.so和。libcuda.so.1C:\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
    
    Run Code Online (Sandbox Code Playgroud)

    我对上面的命令做了一些轻微的(未经测试的)更改,以(a)使用sudo(这是必需的),以及(b)使用完全限定的路径和选项ln -r。这仅意味着您无需cd提前查看目录。如果我提供的版本有任何问题,请返回到该帖子中的说明。

  • 我在这里遵循了本指南:https://github.com/microsoft/WSL/issues/5663#issuecomment-1068499676 它提供了与原始答案类似的解决方案,但使用 Windows cmd 终端的 mklink,而不是 WSL 的 ln。 (3认同)
  • 如果无害的话,我就放了! (2认同)