前言
最近学习使用grafana的过程中,涉及到需要编译grafana源码的场景,因为grafana是使用go语言进行开发的,因为众所周知的原因,国内很多网站无法访问,导致编译起来比较累,本文主要总结一下如果在Windows和CentOS上进行go语言环境的搭建和配置。
Go资源下载
- 官网: https://golang.org/
- 国内资源站台: https://studygolang.com/dl
- GitHub地址: https://github.com/golang
因为go的资源下载地址是google.com的二级域名,国内访问时,如果没有梯子时无法访问的,所以只能透过国内的站台进行下载安装。
这里我们可以根据我们的操作系统选择对应的安装包。
GO语言Windows编译环境构建
下载安装包
1 | https://studygolang.com/dl/golang/go1.12.7.windows-amd64.msi |
一路next,采用默认安装,安装时会自动在系统环境变量里新建一个名为GOROOT
的环境变量,
这个变量的值和你go
的安装路径一致。这里我们安装在C盘:
1 | C:\Go |
安装程序会自动将C:\Go\bin
这个目录加入到系统环境变量的PATH
属性上。
设置环境变量
go代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:
src
里面每一个子目录,就是一个包。包内是go的源码文件pkg
编译后生成的,包的目标文件bin
生成的可执行文件。
安装完毕后我们需要手动添加一个名为GOPATH的环境变量,值为工作空间的路径,这里我新建了一个F:\go
的文件夹作为工作空间。
接下来我们将go
工作空间下的bin文件夹加入系统环境PATH
变量中,
1 | PATH=%PATH%;%GOPATH%\bin |
验证命令
在cmd或powershell中输入$ go version
,如果安装成功应该显示类似的提示信息。
GO语言CentOS编译环境构建
下载二进制包
1 | wget https://studygolang.com/dl/golang/go1.12.7.linux-amd64.tar.gz |
配置环境变量
1 | vi /etc/profile |
在文件末尾增加以下两行:
1 | export GOROOT=/usr/local/go |
在文件末尾增加以下一行信息,配置GOPATH路径。
1 | export GOPATH=/home/gopath |
执行以下代码,使配置生效:
1 | source /etc/profile |
查看Go的版本
1 | go version |
Go Get无反应的解决方案
因为国内网络问题,执行go get
经常会出现卡死不动的情况,比如我们在命令行执行以下代码,你会发现一只卡在那儿,其实我们的设置都没有问题,只是网络问题导致无法正常访问。
1 | go get github.com/astaxie/beego |
改HOSTS解决方法
如果有梯子,那我们可以设置proxy来跳过这个问题,但是如果没有的话,网上有童鞋该hosts文件也有成功的。
可以先使用IP查询工具查询,然后按以下方法更新。
1 | vim /etc/hosts |
然后重启系统,再执行我们的go get命令。
不过,我更新之后发现也是不行的,还是得下载离线包的方案来解决。
Git Clone方案
golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net即是 https://golang.org/x/net 的镜像库。获取 golang.org/x/net 包,其实只需要以下步骤:
1 | mkdir -p $GOPATH/src/golang.org/x |
其他的包也可以采用类似方案进行解决。
go get 代理设置
让go get用上http代理:临时使用
1 | windows:在cmd中使用 |
使用git设置代理为
1 | git config --global https.proxy "127.0.0.1:1080" |