我有适用于 Linux 的 Windows 子系统,但我不知道我拥有哪个版本,并且许多东西在版本 1 中无法运行。我如何检查我的版本?
答案1
在 Windows 10 命令提示符下,运行
ver
。是倒数第二个数字组版本18917 或更高版本? 如果是的话,可能的你有 WSL 2,但还没有已验证. 继续步骤 A或者B.
如果你这样做不是请参见 Windows 版本 18917 或更高版本,您拥有的是版本 1。
这说明了操作系统为 Build 16299 时的结果:A. 打开窗户电源外壳或者命令并输入命令
wsl -l -v
。如果版本 2 安装正确,您将看到版本号。如果您没有看到版本号,或者看到错误消息(谢谢,瓦伦丁角膜)您拥有版本 1(您可能还会看到版本号“1”,这可能表明您正在运行 v1 - 请参阅这里)。卸载它,然后按照以下方法重新安装https://scotch.io/bar-talk/trying-the-new-wsl-2-its-fast-windows-subsystem-for-linuxB. 从 WSL shell 提示符运行
uname
或uname -r
。如果内核版本 >= 4.19,则为 WSL 版本 2。
这有什么关系?
WSL 1 基于微软的 Linux 兼容内核接口, 兼容转换层和没有Linux内核代码。
WSL 2 经过重新设计,使用在轻量级 VM 环境中运行的 Linux 内核,创新者发现使用 WSL 2 可以做更多的事情。
Windows 10 版本 2004(内部版本 19041.153 及更高版本)进一步增强了 WSL2;请参阅https://devblogs.microsoft.com/commandline/wsl2-will-be-generally-available-in-windows-10-version-2004/和https://winaero.com/blog/wsl2-will-ship-with-windows-10-version-2004-with-kernel-updates-via-windows-update/。
答案2
- 打开 PowerShell
- 使用以下方法检查版本
wsl -l -v
- 如果是版本 1,则使用以下方法更新版本
wsl --set-version Ubuntu-20.04 2
注意:更改正在运行的操作系统的版本将会终止它。
操作系统名称不必为 Ubuntu-20.04。请选择列出的实际名称 wsl -l -v
如果你无法更新到版本 2,那么你可能没有使用 WSL 2 内核。这可能是从 Microsoft 下载。
答案3
在我运行的 WSL 版本中,我只需输入uname -r
即可获得结果
5.4.72-microsoft-standard-WSL2
所以,我可以说它是 WSL2,所以您可以尝试运行uname -r
并检查。
答案4
如果你恰好正在运行适用于 Windows 的 Docker,并且拥有 WSL 1,那么如果你docker
在 WSL 的终端中输入,你会看到该消息The command 'docker' could not be found in this WSL 1 distro.
,这是一个非常明确的确认。