这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记。
官方配置指南
WSL2和GoLand如何安装默认都完成了,如果不会可以参考其他已有的经验贴,注意最好用WSL2,至于如何确认自己的WSL版本和更改WSL版本可以自行查找。
问题The selected directory is not a valid home for Go Sdk
本帖的内容是在Windows 11 + WSL2 Ubuntu 22.04平台上测试的。
Goland配置远程开发比较简单,但是SSH登录对于WSL2来说比较麻烦,所以这里采用直接读写WSL文件夹的方式开发项目。其中,Goland要求项目文件在WSL文件系统内时,配置的SDK应位于WSL文件系统内,因此就可能出现标题的问题。
这一问题往往出现在使用apt从Ubuntu上游官方镜像安装golang-go的系统内,由于Goland对$GOPATH目录的文件架结构有些要求,而官方安装则适配了系统,文件分散在系统各处,所以最方便的方式是从Golang官网下载一个发行版安装在其他位置。官网下载
下载Linux发行版后解压到某个位置,这里假定是"$HOME/soft/go"。参考 goproxy.cn/ 里面的描述配置了GOPROXY代理。
// 配置GOROOT,即go的安装位置
export GOROOT=$HOME/soft/go
// 配置环境变量,如果有系统golang-go需要注意顺序
export PATH=$GOROOT/bin:$PATH
// 配置GOPATH,即module缓存目录
export GOPATH=$HOME/cache/go
// 配置GOPROXY代理
export GOPROXY=https://goproxy.cn
然后就可以仿照官方配置指南里的内容,从Goland创建新项目,其中项目位置设置为"\wsl\Ubuntu-22.04\home\user\soft\go"(上文的假定的安装目录)。
通过这样的配置就可以完成在WSL2内的Goland配置,可以实现依赖补全等内容。
如果在WSL2碰到依赖缺失的问题,可以检查一下项目的文件路径和go.mod,可能go.mod默认采用了文件路径而不是一个特定的字符串作为包名,导致依赖不匹配。