2.2go语言环境安装 · 慕课网支付系统 · 看云
## 本节主要内容
* go语言环境的安装
* go环境变量(必读)
## go安装包下载地址
点击如下链接,下载对应系统版本的go安装包。
[go语言中文网 https://studygolang.com/dl](https://studygolang.com/dl)
# Linux Or Mac 系统安装
1. 下载
```
右击<下载链接>-复制链接
wget https://dl.google.com/go/go1.1X.对应系统版本.tar.gz
```
2. 解压
```
tar -C /usr/local -xzf go1.1X.对应系统版本.tar.gz
```
3. 修改环境变量
```
vim ~/.bashrc
添加下面的export语句后,执行
source ~/.bashrc
```
```
export GOROOT="/usr/local/go"
export PATH="$PATH:$GOROOT/bin"
export GOPATH="~/go"
export GOBIN="~/go/bin"
export PATH="$PATH:$GOBIN"
#设置go代理,可以访问被墙的代码库
export GOPROXY=https://proxy.golang.org,direct
```
4. 测试安装结果
执行如下两条命令,可以输出go版本或者go环境变量信息则为安装成功
```
go version
go env
```
# Windows系统安装
1. 下载与安装
点击推荐下载中的windows msi可安装文件
2. 测试安装结果
.msi 文件的安装默认会修改环境变量,安装完成之后可以打开cmd执行
```
go version
go env
```
3.设置系统变量
因为msi文件安装时已经自动将go程序路径的放在环境变量path中,所以我们只需要关注GOPATH和GOPROXY环境变量的配置。
首先,要知道如何给windows添加环境变量
[windows 如何添加环境变量](https://jingyan.baidu.com/article/47a29f24610740c0142399ea.html)
然后添加相关的环境变量
![](images/screenshot_1594736164905.png)
![](images/screenshot_1594736229950.png)
```
https://proxy.golang.org,direct
```
# 详解环境变量
go是通过环境变量完成的一系列系统的配置,并且使用 `go env`命令可以查看所有的go环境变量,其中有很多是系统默认的环境变量。我们这里重点讲解几个我们必须要了解的几个环境变量。
![](images/screenshot_1594737318044.png)
### GOROOT
`GOROOT`为 golang 的安装路径。
在`GOROOT/bin`这个路径下,存放的就是go的可执行文件以及一系列的go语言工具。
因此我们需要将`GOROOT/bin`这个路径放到系统的环境变量`PATH`中。这样才可以随处使用go 以及go的工具链,否则就需要使用绝对路径来执行go命令。
### GOPATH
`GOPATH`用于指定我们的开发工作区(workspace), 是存放源代码、测试文件、库静态文件、可执行文件的工作目录,这里需要使用绝对路径。
`GOPATH`可以同时指定多个工作区。例如:
```
export GOPATH=$home/go_workspace;$home/go_workspace2
```
在`GOPATH`对应的文件夹下,通常会分为三个子目录:
* src
* pkg
* bin
其中,`src`目录放的是我们开发的源代码文件,或者是下载的源代码文件,其下面对应的目录被称为包,go的代码组织就是通过包来实现的; go的标准库代码是在`GOROOT/src`目录下,而这里的`GOPATH/src`存放的都是用户代码;<br/>
`pkg`中的文件是对`src`中的源文件编译后产生的库静态文件;<br/>
`bin`目录存放的是源代码编译后最终产生的可执行文件,经过go build、go install或者go get指令都会产生二进制的可执行文件; 不过如果设置了`GOBIN` 环境变量的话,编译产生的二进制可执行文件就会放在`GOBIN`文件夹下。
### GOPROXY
如果你安装的go版本是13+之后的版本,那么这个环境变量是你必须要了解的。
`GOPROXY`是下一小节go module中会用到的,当使用go module构建应用程序的依赖时,会通过`GOPROXY`中配置的地址进行模块代码依赖的下载。
由于github、go官网等网站国内的访问速度特别慢,所以我们通常配置国内的`GOPROXY`地址,比较推荐的配置有:
```
(这里为linux、max系统配置的方式,windows系统需要配置环境变量)
阿里云:
export GOPROXY=https://mirrors.aliyun.com/goproxy/
goproxy中国:
export GOPROXY=https://goproxy.cn
nexus社区:
export GOPROXY=https://gonexus.dev
七牛云:
export GOPROXY=https://goproxy.cn
```
### GO111MODULE
是否开启go module支持的开关,通常配置为auto;
详细解释可以见下一小节go module的讲解
### GOOS和GOARCH
这两个环境变量都是成对出现,并且在go安装完成后有默认的配置。`GOOS`为操作系统的类型,`GOARCH`为CPU架构,当交叉编译时就会用到这两个变量;例如,可以在windows上通过设置`GOOS`和`GOARCH`编译linux系统上可以执行的二进制文件。
### 其他环境变量
其他环境变量通常我们不会使用,例如CGO开头的是和cgo相关的,cgo是指可以使用go调用c编译的链接库 或者 使用go编译出链接库给c语言调用;这些我们就暂时不做深入的了解了,真的使用到的话,我相信你也懂了!