Win10下目前基于WSL2来安装NCL和Python计算绘图是比较稳妥的方案,优于其他类型虚拟机、CYGWIN、双系统等等,但是难免会遇到各种问题,本文可供参考!
建议电脑端打开链接阅读:
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package
安装适用于 Linux 的 Windows 子系统 (WSL) 时有两个选项:
- 简化安装 (预览版) :
wsl --install
要使用wsl --install
简化安装命令,你需要加入 Windows 预览体验计划 并安装 Windows 10 的预览版(OS 版本 20262 或更高版本),但不需要执行手动安装步骤。 只需使用管理员权限打开命令窗口并运行wsl --install
,重启后即可使用 WSL。 - 手动安装 :按照下列 6 个步骤进行操作。 下面列出了 WSL 的手动安装步骤,可按这些步骤在任意版本的 Windows 10 上安装 Linux。
备注
如果在安装过程中遇到问题,请查看本页底部的安装问题疑难解答。
Windows 预览体验计划的简化安装
在 Windows 10 的最新 Windows 预览体验预览版中,显著改进了适用于 Linux 的 Windows 子系统的安装过程,将以下手动步骤替换为单个命令。
要使用 wsl --install
简化安装命令,必须先完成以下操作:
- 加入 Windows 预览体验计划
- 安装 Windows 10 的预览版(OS 版本 20262 或更高版本)。
- 使用管理员特权打开命令行窗口
满足这些要求后,可通过以下方式安装 WSL:
- 在管理员模式下打开命令行,并输入以下命令:
wsl.exe --install
- 重启计算机
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,要求你等待将文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。
祝贺你!现已成功安装并设置了与 Windows 操作系统完全集成的 Linux 分发!
--install 命令执行以下操作:
- 启用可选的 WSL 和虚拟机平台组件
- 下载并安装最新 Linux 内核
- 将 WSL 2 设置为默认值
- 下载并安装 Linux 分发版(可能需要重启)
默认情况下,安装的 Linux 分发版为 Ubuntu。 可以使用 wsl --install -d <Distribution Name>
进行更改。 (将 <Distribution Name>
替换为所需分发版的名称。)初始安装后,可以使用 wsl --install -d <Distribution Name>
命令将其他 Linux 分发版添加到计算机。
若要查看可用 Linux 分发版的列表,请输入 wsl --list --online
。
手动安装步骤
如果你没有使用 Windows 预览体验版本,则需要按照以下步骤手动启用 WSL 所需的功能。
步骤 1 - 启用适用于 Linux 的 Windows 子系统
需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。
以管理员身份打开 PowerShell 并运行:
PowerShell复制
代码语言:javascript复制dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
建议现在转到步骤 #2,更新到 WSL 2,但如果只想安装 WSL 1,现在可以重新启动计算机,然后继续执行步骤 6 - 安装所选的 Linux 发行版。 若要更新到 WSL 2,请等待重新启动计算机,然后继续执行下一步。
步骤 2 - 检查运行 WSL 2 的要求
若要更新到 WSL 2,需要运行 Windows 10。
- 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
- 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 R,然后键入“winver”,选择“确定”。 更新到“设置”菜单中的最新 Windows 版本。
备注
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049 或 18363.1049 ,次要内部版本号需要高于 .1049。 阅读详细信息:WSL 2 即将支持 Windows 10 版本 1903 和 1909。 请参阅疑难解答说明。
步骤 3 - 启用虚拟机功能
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。
以管理员身份打开 PowerShell 并运行:
PowerShell复制
代码语言:javascript复制dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。
步骤 4 - 下载 Linux 内核更新包
- 下载最新包:
备注
如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:
systeminfo | find "System Type"
。 警告: 在非英语 Windows 版本中,你可能需要修改搜索文本,例如在德语中为systeminfo | find "Systemtyp"
。- 适用于 x64 计算机的 WSL2 Linux 内核更新包
- 运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。 (如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)
备注
有关详细信息,请参阅 Windows 命令行博客上的文章对更新 WSL2 Linux 内核的更改。
步骤 5 - 将 WSL 2 设置为默认版本
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
PowerShell复制
代码语言:javascript复制wsl --set-default-version 2
步骤 6 - 安装所选的 Linux 分发
- 打开 Microsoft Store,并选择你偏好的 Linux 分发版。
单击以下链接会打开每个分发版的 Microsoft Store 页面:
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL
- 在分发版的页面中,选择“获取”。
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。
祝贺你!现已成功安装并设置了与 Windows 操作系统完全集成的 Linux 分发!
安装 Windows 终端(可选)
Windows 终端可启用多个选项卡(在多个 Linux 命令行、Windows 命令提示符、PowerShell 和 Azure CLI 等之间快速切换)、创建键绑定(用于打开或关闭选项卡、复制粘贴等的快捷方式键)、使用搜索功能,以及使用自定义主题(配色方案、字体样式和大小、背景图像/模糊/透明度)。 了解详细信息。
安装 Windows 终端。
将分发版版本设置为 WSL 1 或 WSL 2
可打开 PowerShell 命令行并输入以下命令(仅在 Windows 内部版本 18362 或更高版本中可用),检查分配给每个已安装的 Linux 分发版的 WSL 版本:wsl -l -v
PowerShell复制
代码语言:javascript复制wsl --list --verbose
若要将分发版设置为受某一 WSL 版本支持,请运行:
PowerShell复制
代码语言:javascript复制wsl --set-version <distribution name> <versionNumber>
请确保将 <distribution name>
替换为你的分发版的实际名称,并将 <versionNumber>
替换为数字“1”或“2”。 可以随时更改回 WSL 1,方法是运行与上面相同的命令,但将“2”替换为“1”。
备注
从 WSL 1 更新到 WSL 2 可能需要几分钟才能完成,具体取决于目标分发版的大小。 如果从 Windows 10 周年更新或创意者更新运行 WSL 1 的旧(历史)安装,可能会遇到更新错误。 按照这些说明卸载并删除任何旧分发。
如果 wsl --set-default-version
结果为无效命令,请输入 wsl --help
。 如果 --set-default-version
未列出,则表示你的 OS 不支持它,你需要更新到版本 1903(内部版本 18362)或更高版本。 如果你在使用 ARM64 版本 19041,那么当使用 PowerShell 时,此命令可能会失败;在这种情况下,你可使用命令提示符,而不是发出 wsl.exe
命令。
运行命令后如果看到此消息:WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel
。 仍需要安装 MSI Linux 内核更新包。
此外,如果要使 WSL 2 成为你的默认体系结构,可以通过此命令执行该操作:
PowerShell复制
代码语言:javascript复制wsl --set-default-version 2
这会将安装的任何新分发版的版本设置为 WSL 2。
排查安装问题
下面是相关的错误和建议的修复措施。 有关其他常见错误及其解决方法,请参阅 WSL 故障排除页。
- 安装失败并出现错误 0x80070003
- 适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是
C:
驱动器)中运行。 请确保分发版存储在系统驱动器上: - 打开“设置”->“系统”-->“存储”->“更多存储设置: 更改新内容的保存位置”
- 适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是
- WslRegisterDistribution 失败并出现错误 0x8007019e
- 未启用“适用于 Linux 的 Windows 子系统”可选组件:
- 打开“控制面板” -> “程序和功能” -> “打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”,或使用本文开头所述的 PowerShell cmdlet。
- 安装失败,出现错误 0x80070003 或错误 0x80370102
- 请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。
- WSL2 要求 CPU 支持二级地址转换 (SLAT) 功能,后者已在 Intel Nehalem 处理器(Intel Core 第一代)和 AMD Opteron 中引入。 即使成功安装了虚拟机平台,旧版 CPU(例如 Intel Core 2 Duo)也无法运行 WSL2。
- 尝试升级时出错:
Invalid command line option: wsl --set-version Ubuntu 2
- 请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 18362 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
。
- 请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 18362 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:
- 由于虚拟磁盘系统的某个限制,无法完成所请求的操作。虚拟硬盘文件必须是解压缩的且未加密的,并且不能是稀疏的。
- 取消选中“压缩内容”(如果已选中“加密内容”,请一并取消选中),方法是打开 Linux 发行版的配置文件文件夹。 它应位于 Windows 文件系统上的一个文件夹中,类似于:
USERPROFILE%AppDataLocalPackagesCanonicalGroupLimited...
- 在此 Linux 发行版配置文件中,应存在一个 LocalState 文件夹。 右键单击此文件夹可显示选项的菜单。 选择“属性”>“高级”,然后确保未选择(未勾选)“压缩内容以节省磁盘空间”和“加密内容以保护数据”复选框。 如果系统询问是要将此应用到当前文件夹还是应用到所有子文件夹和文件,请选择“仅此文件夹”,因为你只是要清除压缩标志。 完成此操作后,
wsl --set-version
命令应正常工作。
- 取消选中“压缩内容”(如果已选中“加密内容”,请一并取消选中),方法是打开 Linux 发行版的配置文件文件夹。 它应位于 Windows 文件系统上的一个文件夹中,类似于:
备注
在我的示例中,我的 Ubuntu 18.04 发行版的 LocalState 文件夹位于 C:Users<my-user-name>AppDataLocalPackagesCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
请检查 WSL Docs GitHub 主题 #4103,其中跟踪了此问题以提供更新的信息。
- 无法将词语“wsl”识别为 cmdlet、函数、脚本文件或可运行程序的名称。
- 请确保已安装“适用于 Linux 的 Windows 子系统”可选组件。 此外,如果你使用的是 ARM64 设备,并从 PowerShell 运行此命令,则会收到此错误。 请改为从 PowerShell Core 或从命令提示符运行
wsl.exe
。
- 请确保已安装“适用于 Linux 的 Windows 子系统”可选组件。 此外,如果你使用的是 ARM64 设备,并从 PowerShell 运行此命令,则会收到此错误。 请改为从 PowerShell Core 或从命令提示符运行
- 错误:适用于 Linux 的 Windows 子系统未安装发行版。
- 如果你在已安装 WSL 发行版之后收到此错误:
- 请先运行该发行版一次,然后在从命令行中调用它。
- 检查你是否正在运行单独的用户帐户。 运行具有提升权限(在管理员模式下)的主要用户帐户应该不会导致出现此错误,但你应确保你未在无意中运行 Windows 附带的内置管理员帐户。 这是单独的用户帐户,根据设计将不显示任何已安装的 WSL 发行版。 https://docs.microsoft.com/windows-hardware/manufacture/desktop/enable-and-disable-the-built-in-administrator-account
- WSL 可执行文件仅安装到本机系统目录中。 在 64 位 Windows 上运行 32 位进程(若在 ARM64 上,则为任何非本机组合)时,托管的非本机进程实际上会看到一个不同的 System32 文件夹。 (32 位进程在 x64 Windows 上看到的文件夹存储在 WindowsSysWOW64 处的磁盘上。)你可通过查看虚拟文件夹 Windowssysnative,访问来自托管进程的“本机”system32 文件夹。 请记住,它实际上不会存在于磁盘上,不过文件系统路径解析程序会找到它。
- 错误:此更新仅适用于装有适用于 Linux 的 Windows 子系统的计算机。
- 若要安装 Linux 内核更新 MSI 包,需要 WSL,应先启用它。 如果失败,将看到以下消息:
This update only applies to machines with the Windows Subsystem for Linux
。 - 出现此消息有三个可能的原因:
- 你仍使用旧版 Windows,不支持 WSL 2。 有关版本要求和要更新的链接,请参阅步骤 #2。
- 未启用 WSL。 需要返回到步骤 #1,并确保在计算机上启用了可选的 WSL 功能。
- 启用 WSL 后,需要重新启动才能使其生效,请重新启动计算机,然后重试。
- 若要安装 Linux 内核更新 MSI 包,需要 WSL,应先启用它。 如果失败,将看到以下消息:
- 错误:WSL 2 要求对其内核组件进行更新。若需了解相关信息,请访问 https://aka.ms/wsl2kernel 。
- 如果 %SystemRoot%system32lxsstools 文件夹中缺少 Linux 内核包,会遇到此错误。 若要解决此问题,请在安装说明的步骤 #4 中安装 Linux 内核更新 MSI 包。 可能会需要从“添加或删除程序”卸载 MSI,然后重新安装。