使用 wsl 搭建开发 golang 的linux开发环境

目录

安装 wsl

前提设置

安装WSL

迁移WSL

开发环境搭建

安装 vscode

连接 WSL 

安装 go 

配置开发环境

错误处置


因为某种原因,电脑不方便安装 VMware, 所以使用 wsl 搭建linux的开发环境。按道理应该一切顺利,但是过程中遇到一些问题,特此记录

安装 wsl

参考文档:

安装 WSL | Microsoft Learn

官方文档只说了操作系统版本的要求,具体要开启哪些虚拟化支持它是一点都不说啊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

这个没啥好说的, 直接下载安装就行

Visual Studio Code on Windows


连接 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值