在了解字节开源 RPC 框架 Kitex 的过程中一直使用的云服务器进行运行,但碍于服务器性能不足和 JB Getaway 功能还并不完善,所以想到使用 WSL 进行开发。

而使用 WSL 开发的优势并不止这些,例如 Redis 在 WSL 中可以使用最新版本,增加很多功能,还有其他的优势等待你的探索。

什么是WSL

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行(这段是直接从百度百科上摘抄的)

如果没有Mac或者云服务器的话,想要使用一些不能在Win系统中运行的工具或框架,最好的解决方法就是WSL,接下来详细说说怎么用

安装WSL

微软在官方文档中提供了安装的详细方法,可能有读者由于特殊原因进入不了文档,所以我还是简单说明一下

先决条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。

若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。 可通过选择“开始”>“设置”>“Windows 更新”>“[检查更新]()”来更新到最新的 Windows 版本。

如果你运行的是旧版,或只是不想使用 install 命令并希望获得分步指引,请参阅旧版 WSL 手动安装步骤

安装

现在,可以在管理员 PowerShell 或 Windows 命令提示符中输入此命令,然后重启计算机来安装运行适用于 Linux 的 Windows 子系统 (WSL) 所需的全部内容。

PowerShell 复制

wsl --install

此命令将启用所需的可选组件,下载最新的 Linux 内核,将 WSL 2 设置为默认值,并安装 Linux 发行版(默认安装 Ubuntu,请参阅下文更改此设置)。

首次启动新安装的 Linux 发行版时,将打开一个控制台窗口,要求你等待将文件解压缩并存储到计算机上。 未来的所有启动时间应不到一秒。

上述命令仅在完全未安装 WSL 时才有效,如果运行 wsl --install 并查看 WSL 帮助文本,请尝试运行 wsl --list --online 以查看可用发行版列表并运行 wsl --install -d <DistroName> 以安装发行版。

更改默认安装的 Linux 发行版

默认情况下,安装的 Linux 分发版为 Ubuntu。 可以使用 -d 标志进行更改。

  • 若要更改安装的发行版,请输入:wsl --install -d <Distribution Name>。 将 <Distribution Name> 替换为要安装的发行版的名称。
  • 若要查看可通过在线商店下载的可用 Linux 发行版列表,请输入:wsl --list --online 或 wsl -l -o
  • 若要在初始安装后安装其他 Linux 发行版,还可使用命令:wsl --install -d <Distribution Name>

 提示

如果要通过 Linux/Bash 命令行(而不是通过 PowerShell 或命令提示符)安装其他发行版,必须在命令中使用 .exe:wsl.exe --install -d <Distribution Name> 或若要列出可用发行版,则使用:wsl.exe -l -o

如果在安装过程中遇到问题,请查看疑难解答指南的安装部分

设置 Linux 用户信息

安装 WSL 后,需要为新安装的 Linux 发行版创建用户帐户和密码。 请参阅设置 WSL 开发环境的最佳做法指南来了解详细信息。

设置和最佳做法

建议遵循设置 WSL 开发环境的最佳做法这一指南,逐步了解以下操作:为已安装的 Linux 发行版设置用户名和密码、使用基本的 WSL 命令、安装和自定义 Windows 终端、针对 Git 版本控制进行设置、使用 VS Code 远程服务器进行代码编辑和调试、文件存储的最佳做法、设置数据库、装载外部驱动器、设置 GPU 加速等。

检查正在运行的 WSL 版本

可列出已安装的 Linux 发行版,并通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v

要在安装新的 Linux 发行版时将默认版本设置为 WSL 1 或 WSL 2,请使用命令 wsl --set-default-version <Version#>,将 <Version#> 替换为 1 或 2。

要设置与 wsl 命令一起使用的默认 Linux 发行版,请输入 wsl -s <DistributionName> 或 wsl --setdefault <DistributionName>,将 <DistributionName> 替换为要使用的 Linux 发行版的名称。 例如,从 PowerShell/CMD 输入 wsl -s Debian,将默认发行版设置为 Debian。 现在从 Powershell 运行 wsl npm init 将在 Debian 中运行 npm init 命令。

要在 PowerShell 或 Windows 命令提示符下运行特定的 WSL 发行版而不更改默认发行版,请使用命令 wsl -d <DistributionName>,将 <DistributionName> 替换为要使用的发行版的名称。

有关详细信息,请参阅 WSL 的基本命令指南。

将版本从 WSL 1 升级到 WSL 2

要在以前安装的 Linux 发行版上从 WSL 1 更新到 WSL 2,请使用命令 wsl --set-version <distro name> 2,将 <distro name> 替换为要更新的 Linux 发行版的名称。 例如,wsl --set-version Ubuntu-20.04 2 会将 Ubuntu 20.04 发行版设置为使用 WSL 2。 可能还需要启用 WSL 2 使用的虚拟机可选组件安装内核包(如果尚未这样做)。

默认情况下,新的 Linux 安装将设置为 WSL 2,但 wsl --set-version 命令也可用于从 WSL 2 降级到 WSL 1。 要查看 Linux 发行版是设置为 WSL 1 还是 WSL 2,请使用命令 wsl -l -v

如需了解更多信息,请参阅 WSL 命令参考以获取 WSL 命令列表,并参阅比较 WSL 1 和 WSL 2,获取有关用于你的工作场景的指南,或参阅设置 WSL 开发环境的最佳做法,了解有关使用 WSL 设置良好开发工作流的一般指南。

一般来说现在我们都使用的是 WSL2 ,功能更强大,更方便

配置 WSL 的 Go 语言环境

既然我们要在 WSL 中进行开发,所以像 Win 一样,我们也需要进行 Go 语言环境的配置。

下载Go安装包

大家可以去官网选择适合自己的版本,这里我选择的是最新的1.18.2。

$ wget https://studygolang.com/dl/golang/go1.18.2.linux-amd64.tar.gz

将安装包解压到/usr/local

$ tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz

然后我们就可以进行环境变量的设置。

设置环境变量

使用 vim 在路径 ~/.bash_profile 中写入环境变量 vim ~/.bash_profile

若你的WSL中没有 ~/.bash_profile,可以将环境变量添加到 /etc/profile

咱们提前建好文件夹并在 GOPATH 路径下放 pkg、bin、src 三个文件夹。

export GOPATH=/home/你设置的名字/go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

然后执行 source ~/.bash_profilesource /etc/profile

自此我们的环境就配置好了,可以进行简单的测试操作。

测试

$ mkdir $GOPATH/src/test -p
$ cd $GOPATH/src/test
$ touch test.go
$ vi test.go

在 test.go 文件中简单放入几行可执行代码。

package main 

import "fmt" 

func main() { 
    fmt.Println("HELLO"); 
}
$ go run test.go 
HELLO

测试成功后我们就可以在 Goland 上愉快开发了。

使用 WSL 环境在 Goland 中进行开发

首先我们要在 Goland 中创建一个新项目。

image.png

创建之后就可以像以前一样正常开发了,还有更多的设置可以去到 Jetbrains 关于这个的官方文档中了解。

PS:有一个常见的坑就是使用 WSL 环境后 Git 就用不了了,这是因为 DNS 被污染了,去到 DNS 配置那里修改一下就行

结语

这大概就是这两天我总结出的教程,如果有问题可以私聊我或评论,我都会尽力解答。

这是我的 GitHub 主页 github.com/L2ncE

欢迎大家 Follow/Star/Fork 三连。

参考

https://baike.baidu.com/item/wsl/20359185?fr=aladdin

https://docs.microsoft.com/zh-cn/windows/wsl/install