目录
因为某种原因,电脑不方便安装 VMware, 所以使用 wsl 搭建linux的开发环境。按道理应该一切顺利,但是过程中遇到一些问题,特此记录
安装 wsl
参考文档:
官方文档只说了操作系统版本的要求,具体要开启哪些虚拟化支持它是一点都不说啊o(╥﹏╥)o
Windows10/11 三步安装wsl2 Ubuntu20.04(任意盘)
前提设置
进入
控制面板 -> 程序 -> 程序和功能 -> 启用或关闭 Windows 功能,
这俩支持必须打开: 虚拟机平台(Virtual Machine Platform) 和适用于Linux的Windows子系统(Microsoft Windows Subsystem Linux)
或者使用管理员运行 powershell 执行以下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
注意:有的文章说要打开 Hyper-V 的虚拟化功能,因为WSL2是基于Hyper-V的。
这一块我大致查了一下,可能跟 windows 版本有关系:
Hyper-V其实分两个部分:底层的虚拟机平台,以及上层的虚拟机管理软件。以前的Windows版本,这两个是同一个选项,现在的新版本则是分成Hyper-V和虚拟机平台两个选项。WSL2 开启虚拟机平台就可以了。
安装WSL
使用 wsl 查看有哪些 linux 版本
C:\Users\red\Desktop> wsl --list --online
以下是可安装的有效分发的列表。
使用“wsl.exe --install <Distro>”安装。
NAME FRIENDLY NAME
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
Debian Debian GNU/Linux
FedoraLinux-42 Fedora Linux 42
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
archlinux Arch Linux
kali-linux Kali Linux Rolling
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-15.6 openSUSE Leap 15.6
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.144106180
默认安装 Ubuntu , 我没有特殊需求所以直接安装
wsl --install
安装完设置用户名、密码,完事查看 wsl 状态
PS C:\Users\red\Desktop> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
迁移WSL
参考文章
【WSL2教程】WSL迁移到非系统盘_wsl2迁移-CSDN博客
# 查看 WSL 状态, stopped 才可以接下来的步骤
C:\Users\xxx\Desktop>wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
# 导出系统镜像
wsl --export Ubuntu D:\UbuntuWSL\ubuntu.tar
# 注销原有的linux系统
wsl --unregister Ubuntu
# 查看注销后结果
C:\Users\xxx\Desktop>wsl -l -v
NAME STATE VERSION
# 导入系统
# wsl --import <导入的Linux名称> <导入盘的路径> <ubuntu.tar的路径> --version 2 (代表wsl2)
wsl --import Ubuntu D:\UbuntuWSL\ D:\UbuntuWSL\ubuntu.tar --version 2
开发环境搭建
安装 vscode
这个没啥好说的, 直接下载安装就行
连接 WSL
安装插件 " Remote Development ", 包含了 Remote-SSH 、Remote-Tunnels、 WSL等工具
安装完就可以连接 WSL 了
安装 go
All releases - The Go Programming Language
下载合适的版本进行安装
# 解压安装包到 /usr/local
sudo tar -C /usr/local -xzf go1.21.13.linux-amd64.tar.gz
# 设置环境变量
sudo vi /etc/profile
```
export PATH=$PATH:/usr/local/go/bin
```
# 设置 go env
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
# 测试
soure /etc/profile
go env
配置开发环境
vscode 在 WSL 上安装 go 插件
vscode 在 WSL 上安装go 扩展, Ctrl + shift + p , 点击 GO: install/update tools
按道理来讲不会出问题,但是我偏偏出问题了,提示 go.tools.install not found
查了说是 go 插件的问题,那我装的是什么???
遇到这种问题,解决方案如下:
1. 重启重新加载环境变量
2. 手动安装,我 windows 本机是没有问题的,根据输出内容手动执行
# 本机执行结果如下
2025-06-04 10:36:55.045 [info] Installing golang.org/x/tools/gopls@latest (C:\Users\gongyuheng\go\bin\gopls.exe) SUCCEEDED
2025-06-04 10:36:55.171 [info] Try to start language server - installation (enabled: true)
2025-06-04 10:36:55.298 [info] Running language server gopls(v0.18.1/go1.23.9)
2025-06-04 10:36:56.475 [info] Installing github.com/cweill/gotests/gotests@v1.6.0 (C:\Users\gongyuheng\go\bin\gotests.exe) SUCCEEDED
2025-06-04 10:36:57.830 [info] Installing github.com/fatih/gomodifytags@v1.17.0 (C:\Users\gongyuheng\go\bin\gomodifytags.exe) SUCCEEDED
2025-06-04 10:36:59.064 [info] Installing github.com/josharian/impl@v1.4.0 (C:\Users\gongyuheng\go\bin\impl.exe) SUCCEEDED
2025-06-04 10:37:00.200 [info] Installing github.com/haya14busa/goplay/cmd/goplay@v1.0.0 (C:\Users\gongyuheng\go\bin\goplay.exe) SUCCEEDED
2025-06-04 10:37:01.356 [info] Installing github.com/go-delve/delve/cmd/dlv@latest (C:\Users\gongyuheng\go\bin\dlv.exe) SUCCEEDED
2025-06-04 10:37:03.645 [info] Installing honnef.co/go/tools/cmd/staticcheck@latest (C:\Users\gongyuheng\go\bin\staticcheck.exe) SUCCEEDED
# WSL 上手动安装
go install golang.org/x/tools/gopls@latest
go install github.com/cweill/gotests/gotests@v1.6.0
go install github.com/fatih/gomodifytags@v1.17.0
go install github.com/josharian/impl@v1.4.0
go install github.com/haya14busa/goplay/cmd/goplay@v1.0.0
go install github.com/go-delve/delve/cmd/dlv@latest
go install honnef.co/go/tools/cmd/staticcheck@latest
安装完如果不好使,建议重启,另外在 vscode 设置里面配置 gopath 和 goroot 路径
错误处置
重装了一下 WSL, 安装 Ubuntu 22.04, 又遇到了 go.tools.install not found 这个问题,
通过修改远程【wsl】的配置文件,设置 gopath 和 goroot 后再次执行 GO: install/update tools 没有报错。
个人推测原因如下:vscode 的配置文件分为本地和远程【wsl】两个,在没有配置 wsl 的环境时,它没法自动推导路径,导致无法运行 go install xxxxx