VS CODE 配置远程 Go 开发环境
# VS CODE 配置远程 Go 开发环境
# 配置linux用户
尽量不使用root
用户作为开发用户,使用普通用户作为开发用户,可以支持不同用户使用不同的go
开发环境。
新建开发账户
本文以用户
code
为例。# useradd code # passwd code
1
2将用户添加
sudo
免密编辑
/etc/sudoers
文件:# visudo
1在
root ALL=(ALL) ALL
下发添加code ALL=(ALL) NOPASSWD:ALL
。## Allow root to run any commands anywhere root ALL=(ALL) ALL code ALL=(ALL) NOPASSWD:ALL
1
2
3
# 安装Go
tips:建议使用root
用户安装go
。
下载
Go
安装包,Go
安装包:https://go.dev/dl/go1.18.1.linux-amd64.tar.gz。通过删除
/usr/local/go
文件夹(如果存在)来删除任何以前的Go
,然后将刚刚下载的存档解压缩到/usr/local
,在/usr/local/go
中创建一个新的Go
树:# rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz
1将
/usr/local/go/bin
添加到PATH
环境变量中。编辑文件
/etc/profile
(所有用户有效)或者$HOME/.profile
(当前用户有效),添加如下内容:export PATH=$PATH:/usr/local/go/bin
1然后执行命令:
source /etc/profile
或source $HOME/.profile
。验证
Go
是否安装成功。# go version go version go1.18.1 linux/amd64
1
2配置
Go Proxy
$ go env -w GO111MODULE=on $ go env -w GOPROXY=https://goproxy.cn
1
2
# 配置 VS CODE
# 安装 SSH 远程插件
Remote Development using SSH (opens new window)
在 VS CODE 的”拓展“里搜输入remote
,安装搜索结果的第一个名为remote - SSH
的插件,也可以安装其他remote
插件,取决于远程开发环境。
tips:插件的“细节”里有使用说明,可以安装使用说明配置。
# 配置远程登录
点击
remote ssh
的Configure
,选择第一个配置文件:添加远程主机配置:
Host remotehost.yourcompany.com User yourname HostName another-host-fqdn-or-ip-goes-here IdentityFile ~/.ssh/id_rsa-remote-ssh
1
2
3
4remotehost.yourcompany.com
:远程主机的标示名称,可以随意取。yourname
:远程主机的用户,如刚刚创建的用户code
。another-host-fqdn-or-ip-goes-here
:远程主机的地址。IdentityFile
:用于远程登录的秘钥,可以不设置(可以使用ssh-copy-id
设置密码登录)。
例如:
Host GoDev HostName 192.168.1.10 User code
1
2
3设置免密登录。
在 VS CODE 所在机器,打开
git bash
,执行如下命令:$ ssh-copy-id username@hostIP
1使用 VS CODE 连接远程开发机器。
连接远程主机。
选择打开的工作目录。
# 安装Go
插件
Vscode for go (opens new window)
# 插件安装
在 VS CODE 的”扩展“里搜输入
go
,安装搜索结果的第一个名为Go
的插件。安装其他
Go
插件。按快捷键
ctrl+shift+p
,选择go install/update tools
(安装所有相关包)。选择全部进行安装。
# 解决插件失败问题
tips:配置了国内代理一般不会出现失败问题。
如果上述步骤安装Go
插件失败,可以通过如下方式安装。
分别创建两个目录:
gotools
和goworks
。设置
GOPATH
为gotools
,例如:go env -w GOPATH="/home/code/.gocache/gotools"
。进入到
goworks
目录,执行命令:go mod init goworks
。在
goworks
目录如下命令:export GO111MODULE=on export GOPROXY=https://goproxy.cn go get -u -v github.com/stamblerre/gocode go get -u -v github.com/ramya-rao-a/go-outline go get -u -v github.com/acroca/go-symbols go get -u -v golang.org/x/tools/cmd/guru go get -u -v golang.org/x/tools/cmd/gorename go get -u -v golang.org/x/tools/cmd/goimports go get -u -v github.com/rogpeppe/godef go get -u -v github.com/zmb3/gogetdoc go get -u -v golang.org/x/tools/cmd/godoc go get -u -v github.com/golang/lint/golint go get -u -v github.com/derekparker/delve/tree/master/cmd/dlv go get -u -v github.com/fatih/gomodifytags go get -u -v github.com/josharian/impl go get -u -v github.com/tylerb/gotype-live go get -u -v github.com/cweill/gotests go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct go get -u -v golang.org/x/tools/gopls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20配置 VS CODE 的 Go 插件
打开
settings.json
。添加如下内容:
{ "go.toolsGopath": "/home/code/.gocache/gotools", // tools的绝对路径 "go.goroot": "/usr/local/go", "go.useLanguageServer": true, "go.autocompleteUnimportedPackages": true, "go.gocodeAutoBuild": true, "go.gotoSymbol.includeGoroot": true, "go.gotoSymbol.includeImports": true, "go.buildOnSave": "package", "go.vetOnSave": "package", "terminal.integrated.env.linux": { "GOPROXY":"https://goproxy.cn", "GO111MODULE": "on" }, }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15配置”工作区“:
打开
settings.json
。添加如下内容:
{ "go.toolsGopath": "/home/code/.gocache/gotools", // tools的绝对路径 "go.goroot": "/usr/local/go", "go.gopath": "/home/code/.gocache/gotools", "terminal.integrated.env.linux": { "GO111MODULE": "on" }, }
1
2
3
4
5
6
7
8
# 安装 Code Run 插件
搜索关键词code
,安装Code Runner
插件,这样就可以使用快捷键Ctrl+Alt+N
运行代码了。
# 验证 VS CODE Go 开发环境
新建目录
hellomodule
,在目录hellomodule
下的文件main.go
编写go
程序:package main import "github.com/sirupsen/logrus" func main() { logrus.Println("hello, gopath mode") }
1
2
3
4
5
6
7在
hellmodule
目录中执行命令:$ go mod init hellomodule $ go mod tidy
1
2编译:
$ go build
1运行
go
程序:$ ./hellomodule INFO[0000] hello, gopath mode
1
2或者在 VS CODE 中使用快捷键
Ctrl+Alt+N
运行代码。