使用 WSL 2 打造更强大的开发环境
迄今为止,我阅读量最高的博文是我的第一篇《使用适用于 Linux 的 Windows 子系统构建强大的开发环境》,时至今日,它在 DEV 和最初发布它的 Medium 平台上仍然拥有很高的浏览量,因为人们会搜索 WSL 来了解它是否适用于他们。嗯,自从我在 2017 年底发布这篇文章以来,很多事情都发生了变化,我指的不是我们目前都身处的疫情,而是 WSL 2。
今年,微软在发布 Windows 10 版本 2004 更新的同时,也发布了适用于 Linux 的 Windows 子系统 2 (WSL 2)。WSL 2 与 WSL 1 和 WSL 2 之间存在诸多差异。您可以阅读更多关于具体差异的信息,但关键在于 WSL 2 提供 100% 的系统调用兼容性、更快的性能和更低的内存占用。请注意,只有将要处理的文件存储在 Linux 文件系统中,才能获得如此高的性能。如果出于某种原因,您需要将文件存储在 Windows 文件系统中,则使用 WSL 1 会获得更好的性能。
自从我把系统升级到 WSL 2 之后,我的生活质量得到了极大的提升。此外,其他各个方面也都有了显著的改进,让我的新系统比我之前文章里提到的要好得多。我非常兴奋地想和大家分享这些改进。
先决条件
要使用 WSL 2,您必须运行 Windows 10 版本 2004 或更高版本。WSL 2 在版本 2004 之前的版本中不可用。在我之前的文章中,您需要 Windows 10 专业版才能让 Docker 使用 Hyper-V 虚拟化。好消息是,现在不再需要了!
安装 WSL 2
让我们来安装 WSL 2。首先,您需要在 Windows 中启用适用于 Linux 的 Windows 子系统 (WSL)。您只需以管理员身份在 PowerShell 中运行以下命令即可完成此操作:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
这将启用 WSL 功能。此时,您需要按照“更新到 WSL 2”的说明将 WSL 1 安装更新到 WSL 2。简而言之,您需要运行以下命令,然后重启计算机以完成安装:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
计算机重启后,请务必以管理员身份在 PowerShell 中运行以下命令,以确保 WSL 2 始终是默认的 WSL 版本。
wsl --set-default-version 2
注意:您可能会收到类似“WSL 2 需要更新其内核组件”的消息。请务必点击提供的链接并按照所需步骤操作。
此时,您可以打开 Microsoft Store 应用,搜索您喜欢的 Linux 发行版!请注意,本文假设您使用的是 Ubuntu。您可以使用任何发行版,但需要找到正确的安装命令。安装好发行版后,打开它进行初始安装。系统会要求您输入 Ubuntu 用户空间的用户名和密码。完成后,就可以开始安装了!
Git
与之前一样,本文后续的许多安装步骤都需要用到 Git。要安装 Git,只需运行以下命令即可sudo apt update && sudo apt install git。您还需要生成一个 SSH 密钥。这可以通过运行以下命令轻松完成ssh-keygen -t rsa -b 4096 -C "your_email@example.com":
ZSH(可选)
我打算直接从我之前的文章中复制粘贴这一部分,因为这里没有任何变化,而且我仍然很喜欢我的 ZSH 设置。
下一步完全是可选的。我喜欢 bash,也喜欢 zsh,所以两者都可以。如果您更喜欢 bash,请跳过此部分。
安装 zsh 非常简单。确保已运行 `zsh install` 后sudo apt update,即可使用 `zsh install zsh` 进行安装sudo apt install zsh。您可以通过运行 `zsh install zsh` 来测试它是否正常工作,zsh这应该会打开一个 zsh 终端!
我也很喜欢oh-my-zsh,它提供了许多漂亮的主题和优秀的插件。我按照基本安装curl说明中的命令操作,一切就绪!之后,你可以通过编辑配置文件并将主题名称添加到环境变量来选择你想要的主题。之前我一直使用 Pure 主题,但现在我已经换成了久负盛名的Powerlevel10k主题。它高度可定制,易于设置,而且速度极快。~/.zshrcZSH_THEME
Windows 终端
在这方面,我的想法和 2017 年相比发生了彻底的改变。那时我用的是 Zeit 的 Hyper Terminal(该公司后来更名为 Vercel)。虽然我现在仍然在 Mac 上使用它,但在 Windows 系统上,我改用功能强大的Windows Terminal。它速度快、界面现代、设计精美。它还能与 WSL、PowerShell、CMD 等工具无缝协作!它支持多标签页、Unicode、自定义主题以及其他许多强大的功能。我强烈推荐给所有在 Windows 上进行开发的人,无论是否使用 WSL。你可以在 Microsoft Store 中找到它并免费安装。
首次安装并运行 Ubuntu后,启动 Windows Terminal 时,它应该会自动识别该发行版并将其添加到终端设置中,使其成为一个可用选项。我喜欢将其设置为打开 Windows Terminal 时的默认终端,并进行一些其他配置更改。以下是我的 Ubuntu 发行版的 Windows Terminal 配置:
{
"guid": "{GUID_HERE}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"startingDirectory":"//wsl$/Ubuntu/home/{UBUNTU_USERNAME}",
"fontFace": "Fira Code",
"useAcrylic": true,
"acrylicOpacity": 0.8
}
我在这里做了一些设置。首先,我把 `<your_username>` 设置startingDirectory为我的 Ubuntu 主目录。只需将 `<your_username>` 替换{UBUNTU_USERNAME}成你实际的 Ubuntu 用户名即可。我还很喜欢Fira Code字体,所以我在我的电脑上安装了它,并且我的终端也使用了这种字体。最后,我非常喜欢 Windows 的亚克力效果,所以我的终端也使用了这种效果。false如果你不喜欢,可以随意更改设置。
Visual Studio Code
不变的是,Visual Studio Code可能是我用过的最喜欢的软件。正如我在之前的文章中提到的,我用过各种 IDE,比如 Sublime Text、Atom、Notepad++,几乎所有主流的 IDE 我都试过。VS Code 绝对是我最喜欢的编辑器。它界面美观、极其轻巧、速度超快、拥有海量优秀的扩展程序、内置调试器支持,而且功能之强大,几乎可以媲美任何我用过的文本编辑器。我第一时间安装了它,并使用Settings Sync 扩展程序同步了我所有的设置。
注意:从几天前开始,我可能不再使用 Settings Sync 扩展了,因为 VS Code 现在内置了设置同步支持。我的初步测试结果非常积极。
如果你正在进行 WSL 2 开发,还有一个扩展程序你必须安装。这与我上一篇文章中提到的不同,因为当时这个扩展程序还不存在。它就是Remote - WSL扩展程序。这个小小的扩展程序解决了许多我之前遇到的小问题。我以前需要安装一个名为 wsl-git 的工具,它将 Windows 的 Git 请求代理到 WSL。这样我才能在 VS Code 中使用 Git 功能。有了这个 WSL 扩展程序,你就不需要这些了。当你在code .WSL 终端中的某个文件夹内运行命令时,它会在 VS Code 中打开该文件夹,并自动使用 WSL 2 安装中的所有功能和二进制文件,而不是 Windows 中的。你可以安装使用 Linux 二进制文件的 VS Code 扩展程序。它带来的体验完全无缝,让你几乎感觉不到自己在使用 Linux。
Node.js/NPM
这一部分内容与我之前的文章相同。再次复制一遍,以备后用。
我个人决定尽可能在 WSL 环境中完成所有操作。另外,我非常喜欢用 NVM 来管理我的 Node 安装,但它在 Windows 上无法使用。所以,我没有下载 Windows 版的 Node.js 安装程序,而是通过 Ubuntu 的软件仓库安装了 NVM!你可以参考NVM 的安装说明。我curl下载了安装脚本,然后运行它进行安装sudo apt install curl。
如果一切操作正确,nvm 应该已经正确安装。然后,我运行了 `nvm install nvm long Term Support` 来安装 Node.js 的长期支持版本,nvm install --lts并将nvm use --lts其设置为我当前使用的版本。我还运行了 `nvm install nvm nvm nvm` 来将其设置为我的默认 Node.js 版本,nvm alias default {VERSION}其中 `VERSION` 是你刚刚安装的版本号。
纱
除了安装 Node 之外,我还想提一下,我还安装了Yarn,因为我非常喜欢 Yarn。虽然可以在 Windows 系统下安装 Yarn,但我还是想在 WSL 环境下完成所有操作,所以我按照Linux 安装指南进行操作。当然,具体来说是 Ubuntu/Debian 的安装指南。整个过程非常顺利,Yarn 已经可以正常工作了!
Docker
这是 WSL 2 相较于上一代版本最棒的改进之一。Windows版 Docker已更新,支持使用 WSL 2 作为 Docker 的后端。这在 WSL 1 的设置过程中一直是个痛点,我不得不将 Windows 可执行文件别名化为 bash 命令。偶尔会出现一些令人恼火的小问题。现在这些问题都解决了,体验完全无缝,真是太棒了!
要启动并运行 Docker,只需下载Docker Desktop即可。安装过程中,系统会提示您是否要使用 WSL 2 集成,请确保启用该功能。如果您在安装过程中遇到问题,Docker Desktop WSL 2 后端文档提供了详细的设置说明,帮助您确保一切正常运行。
此时,您应该能够在 Windows PowerShell 环境以及默认的 WSL 发行版中完美地使用 Docker 和 Docker Compose 了!(您可以在 Docker Desktop 的 WSL 集成设置中,为除默认发行版之外的其他 WSL 发行版启用此功能。)
遗言
我对 WSL 团队取得的成就印象深刻。WSL 2 相较于 WSL 1 有了巨大的提升,再加上微软其他与 WSL 2 无缝集成的工具,它构成了一个卓越的开发环境,几乎完美地满足了我的 Web 开发工作需求。我有一台公司配发的 Macbook Pro,白天用来工作,但下班后我会立即切换到我的 Windows 电脑,在那里完成所有其他工作,享受其中的乐趣。
四年前,我彻底放弃了在 Windows 上进行开发。对我来说,要么用 Mac,要么双启动 Linux 发行版。我偶尔会尝试用 Windows 写代码,但几乎立刻就放弃了。WSL 1 改变了我这种状况,尤其是在我个人项目上。说实话,WSL 2 让我完全相信,我可以完全用 Windows 完成所有工作,而且会非常开心。对于一个一直以来都喜欢 Windows 作为消费级操作系统的人来说,这种感觉真是太棒了。我非常期待看到,WSL 2 这个强大的工具能为 Windows 带来更多优秀的开发工具。
文章来源:https://dev.to/johnbwoodruff/far-more-epic-development-environment-using-wsl-2-439g





