前言
本文主要介绍安装go语言的主要步骤和易错事项,帮助初学者少走弯路。
安装环境
实验工具:virtualbox虚拟机
实验环境:Ubuntu 18.04
安装步骤
安装golang
首先安装golang,直接使用apt-get install golang语句进行安装。
然后,利用go version可以查看版本,如果没有显示,则表示安装失败。如果成功应该显示如下信息(版本可能不同步)。
go version go1.10.4 linux/amd64
配置环境变量
go 对编译、包管理、测试、部署、运行提供全程支持,了解环境配置非常重要!
新建文件夹,这里我以 $HOME/gowork文件夹为例。
首先修改path文件,利用命令
export GOPATH=$HOME/gowork
export PATH=$PATH:$GOPATH/bin
如下图
保存后载入设置:
$ source $HOME/.profile
然后我们载入后利用go env进行测试,如果GOPATH已经变为你设置的路径,则设置成功。具体位置如下:
$ go env
...
GOPATH = ...
...
GOROOT = ...
...
这一步做完后,请注销/重启系统!!
创建hello world
我们已经配置好了环境变量,下面来写个程序测试以下配置是否有误,首先还是先来建个文件夹(github-user可以换成自己的github账号,便于推送)
$ mkdir $GOPATH/src/github.com/github-user/hello -p
用vscode打开我们的gowork(刚刚设置的根目录),然后,在hello文件夹下新建文件hello.go利用vscode输入源码:
ackage main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
在终端进行编译运行:
go run hello.go
如果得到运行结果,则说明配置没有问题。
安装工具包
进入 vscode ,它提示要安装一些工作(如果没有提示,可以在资源库中搜索go,安装完第一个文件后重启,会发现右下角有提示),然后会发现大部分的包都安装不上,经查询,需要科学上网才能安装(如果有科学上网请直接安装),故采用本地安装的方法。
首先下载代码到本地
mkdir $GOPATH/src/golang.org/x/ -p
go get -d github.com/golang/tools
cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
完成后,安装工具包
go install golang.org/x/tools/go/buildutil
重启vscode,直接install all,然后等待……
但是,我这样还是有两个插件无法安装:goreturns以及golink,这是因为缺少mod包和xerrors包,我们从go的github上将这两个包克隆下来:(如果还是有报错缺少包错误那可以利用类似方法安装)
clone完成后,我们可以用
go install github.com/sqs/goreturns
go install golang.org/x/lint
进行手动安装
全部安装完成后,目录路径应该如下所示:
安装运行hello world
在根目录直接执行命令
go install github.com/user-name/hello
hello
如果执行成功,另外我们可以看到bin中有hello的可执行文件,则证明工具包安装成功。
安装go tour
tour是一个离线学习go语言的文档,由于go tour的更新,原来运行的方法以及不再适用,如果按以前的方法,会有以下报错:
github.com/Go-zh/tour/gotour has moved to golang.org/x/tour\n
我们可以发现,文件夹路径已经移动了,所以,我们执行命令
go get golang.org/x/tour
等待安装完成后,执行tour,会打开以下网页:
证明go tour运行成功。
总结
本次实验为go语言环境搭建的实验,有很多小细节是值得注意的。首先,在设置环境变量时,注意是修改文件而不是在命令行输入,在命令行输入只会让本次设置有效,重启之后就无效了。创建hello world时,要将hello.go放置在hello文件夹内,不然会对后续实验产生影响。安装工具包是最大的坑,因为Google方面的原因,只能在本地安装,但在本地安装会有两个文件夹(mod包和xerrors包)无法自动安装,因此要在go的官方GitHub上将其clone下来,这样才能完成安装。安装运行hello world就很简单了,按照步骤输入命令即可。而 go tour中,因为作者将路径修改了,原来要在github.com文件夹下get已经不适用了,我们要在golang.org/x/tour文件夹下get,然后再执行命令tour(注意这里不是gotour!),才可以正常运行tour文件。