马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Windows 上想跑 Linux 环境,过去只有虚拟机一条路, cumbersome 且吃内存。微软推出的 WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)让开发者可以在 Windows 里直接获得一个完整的 Linux 命令行环境,文件和工具都能用。这篇讲从开启到安装到排错的全流程,并特别标出 ARM64 机器会遇到的那个坑。
一、WSL 到底是什么
WSL 由微软与 Canonical 合作开发,作用是「在 Windows 下运行 Linux 操作系统」。它通过操作系统级虚拟化,把 Linux 子系统无缝嵌进 Windows,提供原生的 Linux 命令行工具、软件包管理器和应用支持,中间不需要启动完整虚拟机。你可以装 Ubuntu、openSUSE、Kali、Debian、Arch Linux 等发行版,直接在 Windows 上跑 Linux 应用程序、实用程序和 Bash 工具。
它的好处集中在几点:轻量化(不像虚拟机那样占几 GB 内存和十几秒启动)、文件系统集成(Windows 盘和 Linux 文件系统互相能访问)、交互体验好(终端里该有的快捷键习惯都在)、开发效率高。对既用 Windows 又需要 Linux 工具的开发者,WSL 基本是起步成本最低的方案。
二、开启 WSL 功能
第一步,在开始菜单搜索「启用或关闭 Windows 功能」,打开对话窗口后找到「适用于 Linux 的 Windows 子系统和虚拟机平台」,勾选它,然后确定。这一步之后必须重启 Windows,否则配置不生效。
第二步,用管理员身份运行 PowerShell,执行更新命令:
wsl --update
正常情况下会完成 WSL 的更新。但如果你是 ARM64 设备,很可能直接报这么一串错误:
wsl : 无法将“wsl”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
所在位置 行:1 字符:1
+ wsl
+ ~~~
+ CategoryInfo : ObjectNotFound: (wsl:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
排查有三个要点:一是系统版本要在 Win10 以上(Win11 没问题);二是确认前面 2.1 的步骤做完并且重启了;三是确认你电脑是不是 ARM64。微软官方 Troubleshooting 里的答案意思是:确保「适用于 Linux 的 Windows 子系统」可选组件已安装,另外如果你用 ARM64 设备、从 PowerShell 直接跑 wsl 就会报这个错,需要改用 PowerShell Core 或命令提示符运行 wsl.exe。
换命令之后就正常了:
wsl.exe --update
更新完,终端里就能直接 wsl 进 Linux 了。
三、安装 Linux 发行版,两条路
方法一:走微软应用商店
- 在微软商店搜索并挑一个需要的 Linux 版本(比如 Ubuntu 22.04.3 LTS),下载安装。
- 下载完成后点击「打开」,启动安装向导。
- 按提示输入用户名和密码,安装即完成。
方法二:命令行安装
- 管理员身份运行 PowerShell,输入
wsl --list --online,会列出所有可用分发版。
- 选定版本后用
wsl.exe --install 装,比如装 Debian:
wsl.exe --install Debian
走完这两步之后和商店安装完全一致:设用户名、设密码,然后就能自由使用这个 Linux 子系统了。
四、最常见的报错:域名解析失败
安装阶段很多人会撞上这个:
无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分发。
无法解析服务器的名称或地址
Error code: Wsl/WININET_E_NAME_NOT_RESOLVED
意思是 WSL 取分发版列表时请求不到 raw.githubusercontent.com,本质是域名解析问题。两步解决。
4.1 先改 DNS
打开网络设置 → 属性,找到「Internet 协议版本 4 (TCP/IPv4)」,点属性,把默认 DNS 改成公共 DNS(比如 DNS .choice 一类可全局访问的解析服务)后确定。改完重试,有一部分人到这里就好了。
4.2 还不行就改 hosts
用 IP 查询工具查 raw.githubusercontent.com 对应的主机地址,把得到的 IPv4 地址写进 C:\Windows\System32\drivers\etc\hosts:
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
保存后再执行安装命令,基本就通了。hosts 文件的修改方法本身不用多说,记事本以管理员身份打开即可。
五、小结与排错清单
- 装完进不去:先确认「适用于 Linux 的 Windows 子系统」勾选并重启过。
- 报 wsl 不是可运行程序:ARM64 用
wsl.exe,且从 PowerShell Core 或 cmd 里跑。
- 取列表报 WININET_E_NAME_NOT_RESOLVED:先换 DNS,再补 hosts 映射。
- 想换发行版:
wsl --list --online 看清单,wsl --install 装,卸载用「应用和功能」里的对应条目。
整体来说,WSL 把「Windows 日常办公 + Linux 开发运维」这两件事合并到了一台机器上,装的过程翻车八成是网络和组件没开全,把上面两步排错走完就顺了。
qidao123.com企服评测-应用市场 编辑提示 |