ubuntu 18.04下搭建go开发编译环境 和配置spacevim作为开发工具

ubuntu18.04下建议使用snap安装go, 多说一句, 其实只要是能用snap安装的程序,可以尽量使用snap。

1. 安装

1
sudo snap install go  --classic

2. 设置环境变量

假设用户的Home目录是/root,且~/go目录作为我们日常开发使用的根目录。那么可配置如下,如果是aws环境,Home目录是 /home/ubuntu/

1
2
3
4
5
6
7
8
# /etc/profile
.
.
.
#加入以下内容
export GOPATH=/root/go
export GOROOT=/snap/go/current
export PATH=$PATH:$GOPATH/bin:$GOROOT/

然后执行

1
source  /etc/profile

激活配置

以上设置了使用/${用户HOME目录}/go作为用户目录下go的根路径,根据开发惯例,相关go源码都放到此目录 src/ 子目录下

3. 设置开发环境

个人推荐使用spacevim开发调试go,可参考spacevim官网配置go开发环境

开发环境安装好后, 在编辑go文件的时候,spacevim会报错下

1
vim-go could not found gopls

手动安装依赖,需在spacevim中执行

1
:GoInstallBinaries

如果本机是在墙内环境,但由于众所周知的原因,安装会失败的。于是我们需要在墙外某云实例上把环境配好,把缺失的二进制文件拷贝回来即可。

比如, 在 aws上,ubuntu实例,可以把$GOPATH/bin 目录,比如/home/ubuntu/go/bin目录打包下来,在墙内的本机解包覆盖对应的$GOPATH/bin目录即可。

4 . 尝试

我们创建一个目录:~/go/src/yourname/hello

1
2
3
4
mkdir -p ~/go/src/yourname/hello
cd ~/go/src/yourname/hello
touch hello.go
vim .

在spacevim中编辑hello.go, 写入内容

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Printf("Hello, World\n")
}

然后在spacevim使用快捷键执行上述代码,SPC就是空格

1
SPC L R

我们将看到脚本执行的输出:

1
2
3
4
5
[Running] go run hello.go 
--------------------
Hello, World

[Done] exited with code=0 in 0.591906 seconds

5. 写在最后

如果使用spacevim 作为 go 的准IDE开发工具, 可以额外安装以下插件, 和配置以下选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#.Spacevim.d/init.toml
[options]
enable_neomake = false
enable_ale = true
enable_tabline_filetype_icon_the_fly = true
automatic_update = true


[[layers]]
name = "colorscheme"

[[layers]]
name = 'autocomplete'
auto-completion-return-key-behavior = "complete"
auto-completion-tab-key-behavior = "cycle"

[[layers]]
name = 'shell'
default_position = 'bottom'
default_height = 30

[[layers]]
name = "format"

[[layers]]
name = "denite"

[[layers]]
name = "lang#javascript"
auto_fix = true
enable_flow_syntax = true

[[layers]]
name = "checkers"

[[layers]]
name = "lang#go"

[[layers]]
name = "core#statusline"
enable = true

[[layers]]
name = "tags"

[[layers]]
name = "ui"
enable_sidebar = true

[[layers]]
name = "git"

推荐文章