如何查找 WSL2 版本?

Sam*_*ala 21 windows-subsystem-for-linux

目前最新的 WSL2 版本是0.58.3。我刚刚运行wsl.exe --update,现在我想知道我正在运行哪个版本的 WSL2。我已经尝试过--version--status标记都没有成功:

PS C:\Users> wsl.exe --status
Default Distribution: Ubuntu
Default Version: 2

Windows Subsystem for Linux was last updated on 6.5.2022
The Windows Subsystem for Linux kernel can be manually updated with 'wsl --update',
but automatic updates cannot occur due to your system settings.
To receive automatic kernel updates, please enable the Windows Update setting:
'Receive updates for other Microsoft products when you update Windows'.
For more information please visit https://aka.ms/wsl2kernel.

Kernel version: 5.10.102.1

PS C:\Users> wsl.exe --version
Invalid command line option: --version
Run Code Online (Sandbox Code Playgroud)

如何查看我当前的 WSL2 版本?请注意,我知道我可以使用wsl.exe --list --verbose来查看我使用的是 WSL 1 还是 2。

Not*_*1ds 18

有几种方法可以确定已安装的 WSL 版本,具体取决于它的安装方式。鉴于您的安装没有--version可用的命令,您很可能正在运行WSL 的内置版本(Windows 附带的一项功能)。

该选项仅在WSL 的应用程序--version版本中可用(从Microsoft StoreWSL 版本下载安装)。

  • WSL 的旧版内置/功能版本随 Windows 版本/更新一起安装,并在 Windows 构建之后进行版本控制。

    较旧的预览版本(Windows 10 下)也遵循此版本控制,并与 Windows 的 Insider/Preview 版本一起发布。此时您运行 Windows 10 预览版的可能性极小,因为所有开发人员/内部版本目前都已过期。

    目前最新的内置版本是22000,对应于Windows 11版本。即使在 Windows 11、22H2 中,内置功能集仍然与 22000 中的相同。

    对于内置/功能版本(以及较旧的内置预览版本),您可以通过以下任一方式查找版本:

    • 使用文件资源管理器导航到C:\Windows\System32\wsl.exe,右键单击,选择“属性”,转到“详细信息”选项卡,然后查找“文件版本”

    • 或者,从 PowerShell:

      (get-item C:\windows\system32\wsl.exe).VersionInfo.FileVersion
      
      Run Code Online (Sandbox Code Playgroud)
  • Windows 11 发布后不久,WSL 在Microsoft Store中作为应用程序包提供,首先作为预览版,然后在 1.0.0 中作为普遍可用的版本。

    这些应用程序包按照您上面提到的点发布格式进行编号,目前最新版本是 1.0.0 版本。您可以在WSL Github 存储库中查看这些版本的历史记录,如果您愿意,甚至仍然可以下载并安装它们。

    这些版本的 WSL 确实添加了一个wsl --version/-v命令,显示如下内容:

    WSL version: 0.58.3.0
    Kernel version: 5.10.102.1
    WSLg version: 1.0.33
    MSRDC version: 1.2.2924
    Direct3D version: 1.601.0
    Windows version: 10.0.22000.613
    
    Run Code Online (Sandbox Code Playgroud)

    您还可以通过检查通过 PowerShell 从应用商店安装的 Appx 软件包来获取 WSL 版本:

    (Get-AppxPackage | ? Name -eq "MicrosoftCorporationII.WindowsSubsystemforLinux").Version
    
    Run Code Online (Sandbox Code Playgroud)

有关的

应用程序包(商店)版本中,您可以使用wsl --update.

但是,在较旧的 WSL 内置版本中,该wsl --update命令只会将WSL2 内核更新到最新版本。请注意,这可能与Github 上的最新版本相对应,也可能不相对应,因为我相信这些通常会在正式发布之前通过预览版进行测试运行。

wsl --help--update显示有关旧版 WSL 内置版本的以下信息:

--update [Options]
        If no options are specified, the WSL 2 kernel will be updated
        to the latest version.

        Options:
            --rollback
                Revert to the previous version of the WSL 2 kernel.
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案!仅供参考,已发布版本的 WSL 更改日志可从 https://docs.microsoft.com/en-us/windows/wsl/release-notes 获取 (2认同)