前言
前面讲了,如何在Linux系统安装并使用SDKMAN管理JDK,但是大多数开发者日常开发用的是Windows系统,那么Windows系统该如何安装使用呢?前面也提到了,要在Windows系统安装SDKMAN需要使用 WSL,接下来我介绍一下如何在Windows11上安装WSL,和遇到的一些问题以及解决方案,因为我的电脑是ARM64的过程中还有所不同,这个会在具体地方说明不同和如何解决。
一,什么是WSL?
WSL(Windows Subsystem for Linux)适用于 Linux 的 Windows 子系统,顾名思义这个子系统的作用是在windows下运行linux操作系统,它是由微软与Canonical公司合作开发,开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能,允许用户在Windows系统中直接运行完整的Linux环境,无需虚拟机。通过操作系统级虚拟化,WSL将Linux子系统无缝嵌入Windows,提供原生Linux命令行工具、软件包管理器及应用程序支持。开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,它具有轻量化、文件系统集成、良好的交互性及开发效率提升等优点,消除了Windows与Linux之间的隔阂,尤其适合开发者和需在Windows平台上使用Linux工具的用户。
二,如何开启WSL?
2.1.适用于Linux的Windows子系统,和虚拟机平台
在开始菜单搜索启用或关闭Windows 功能,点击打开对话窗口如下,然后找到 适用于Linux的Windows子系统,和虚拟机平台,并勾选,然后确定。重启系统Windows系统,这步是必须的否则不生效。
2.2.以管理员的方式运行打开PowerShell,执行更新操作
wsl --update
正常情况下会完成wsl的更新。
如果你执行完命令报了,如下红色字体的错误信息:
wsl : 无法将“wsl”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,
然后再试一次。
所在位置 行:1 字符: 1
- wsl
- ~~~
- CategoryInfo : ObjectNotFound: (wsl:String) [], CommandNotFoundException
- FullyQualifiedErrorId : CommandNotFoundException
1.请确保你的系统win10以上,我的是win11系统。
2.确保已经完成了2.1的步骤,并且重启了系统。
3.如果以上的步骤都完成了,看一下你的电脑是否是ARM64的。
在官网的Troubleshooting 中找到的答案,内容如下:
翻译过来就是,确保已安装适用于 Linux 的 Windows 子系统可选组件。此外,如果您使用的是 ARM64 设备并从 PowerShell 运行此命令,您将收到此错误。需要从 PowerShell Core或命令提示符运行 wsl.exe
我的电脑恰好是ARM64的,所以正好遇到这个问题,如果不是ARM64的可能没有这个问题。
打开终端
wsl.exe --update
不再报错,完成wsl的更新!
更新完成之后就可以在终端直接使用wsl命令操作了。
二,安装Linux子系统
方法一:通过微软应用商店
2.1.1在微软商店中搜索并挑选所需要的Linux版本,下载并安装
2.1.2.点击打开
比如我选择的是Ubuntu 22.04.3LTS,点击下载,等下载完成,直接点击打开即可开始安装
2.1.3.按照提示输入用户名和密码即可完成安装
方法二:命令行安装
2.2.1.管理员身份运行powershell,输入
wsl --list --online
显示可用分发版列表,正常情况下应该显示如下:
wsl --list --online
2.2.2.选择需要的版本,使用wsl.exe --install安装
wsl.exe --install Debian
接下来和前面通过Microsoft stroe安装一样,输入用户名,设置密码,如果走到这里那么恭喜你已经完成了Linux子系统的安装,接下你就可以自由发挥了!
三,安装过程可能存在的问题
但是,但是来了,很大一部分人这个地方会报错,报错如下:
无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分发。无法解析服务器的名称或地址
Error code: Wsl/WININET_E_NAME_NOT_RESOLVED
分析问题:https://raw.githubusercontent.com 无法响应,可能是域名解析的问题,那就先从域名解析入手试试
3.1.1.打开网络设置,属性找到Internet解析版本4(TCP/IPv4),点属性
3.1.2修改默认的dns设置如下
修改完成,重试一下,这个时候应该就会有一部分人可以了,如果你是这一部分那恭喜你了。
如果还是报同样的问题,那就就继续想办法,修改host文件,添加地址映射
3.2.1.先找到域名对应的主机地址
打开IP地址工具,复制raw.githubusercontent.com到搜索框,回车。解析得到地址对应的IPv4 地址如下:
3.2.2. 将得到的地址配置到C:\Windows\System32\drivers\etc 的host中
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
保存后再次尝试,应该就没有问题了,怎么修改host文件应该不用细说了吧,默认都会!!!
到此WSL的安装就完成了!!!
有问题欢迎留言,以便及时斧正,也欢迎一起讨论!
最后祝大家工作顺利,生活安康!
版权归原作者 不是菜鸟 所有, 如有侵权,请联系我们删除。