Go 语言支持以下系统:

  • Linux
  • FreeBSD
  • Mac OS X(也称为 Darwin)
  • Windows

安装包下载地址为:https://golang.org/dl/。

如果打不开可以使用这个地址:https://golang.google.cn/dl/。

各个系统对应的包名:

操作系统包名
Windowsgo1.4.windows-amd64.msi
Linuxgo1.4.linux-amd64.tar.gz
Macgo1.4.darwin-amd64-osx10.8.pkg
FreeBSDgo1.4.freebsd-amd64.tar.g

windows安装Go语言开发包

双击我们下载好的Go语言开发包即可启动安装程序,如下图所示,这是Go语言的用户许可协议,无需管它,直接勾选“I accept ...”然后点击“Next”即可。
 


在 Windows 系统下Go语言开发包会默认安装到 C 盘的 Go 目录下,推荐在这个目录下安装,使用起来较为方便。当然,你也可以选择其他的安装目录,确认无误后点击“Next”,如下图所示:
 


Go语言开发包的安装没有其他需要设置的选项,点击“Install”即可开始安装,如下图所示:
 


等待程序完成安装,然后点击“Finish”退出安装程序。
 

ubuntu/debian

在debian或ubuntu上,我们可使用 apt-get 命令安装go。比如,在Ubuntu 16.04.5 LTS系统,使用如下命令安装:

sudo apt-get update // 视情况决定是否更新
sudo apt-get install golang-go

如果是新建的系统,建议先update下软件源。否则可能会因为某些源异常而无法顺利安装。

centos/redhat

在centos或redhat上,我们可以使用yum命令安装go。比如,在CentOS 7.5上,使用如下命令安装:

$ yum epel-release
$ yum install golang

先下载了epel-releaes源,可防止出现yum安装golang不支持或版本太旧的问题。

macos

在macos上,我们可使用pkg文件或homebrew安装go。

pkg的安装方式与windows的setup.exe/msi的类似,下载软件然后按导航 "下一步" "下一步" 即可完成。

来说说如何使用homebrew安装。和yum和apt-get不同,homebrew并非mac系统自带,我们需要先安装。进入homebrew官网,页面顶部便说明了安装的方式,命令如下:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

接着安装go,命令如下:

$ brew install go

非常简单就完成了安装。

系统安装方式的优点是简单。缺点是我们不能保证系统提供给的版本一定能满足我们的要求,比如上面ubuntu安装的go版本就较低,为go1.6。

源码编译

下载源码,最新版源码可点击 go1.12.2.src.tar.gz 下载。这里多说几句,go的源码托管在github上,地址:https://github.com/golang/go,如想提前尝试新功能,可直接从github拉取最新的代码编译。这也是源码编译安装的一个好处。

源码下载完成后进入源码目录即可编译。注意,如果用虚拟机编译,要保证有充足的内存。

$ tar zxvf go1.12.2.src.tar.gz       // 解压源码包
$ cd go/src
$ ./all.sh

执行./all.sh即可完成编译安装,也挺简单的。这个过程会耗费一旦时间,要等待会。其实这里简化了很多细节,如果想仔细研究的话,可以去阅读官方文档 install go from source。

1、下载二进制包:go1.4.linux-amd64.tar.gz。

2、将下载的二进制包解压至 /usr/local目录。

tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz

3、将 /usr/local/go/bin 目录添加至PATH环境变量:

export PATH=$PATH:/usr/local/go/bin

注意:MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。

环境变量

在安装完golang后,还需了解三个环境变量,分别是GOROOT、GOPATH、PATH。下面来分别介绍一下它们的作用。

GOROOT

GO安装的根目录。该变量在不同的版本需要选择不同的处理方式。

在 GO 1.10 之前,我们需要视不同安装方式决定是否手动配置。比如源码编译安装,安装时会有默认设置。而采用二进制包安装,在windows系统中,推荐安装位置为C:\GO,在Linux、freeBSD、OS X系统,推荐安装在/usr/local/go下。如果要自定义安装位置,必须手动设置GOROOT。如果采用系统方式安装,这一切已经帮我们处理好了。

PATH

各个操作系统都存在的环境变量,用于指定系统可执行命令的默认查找路径,在不写完整路径情况下执行命令。

以Windows为例,我之前把go安装在 C:\Program Files\go目录下,即GOROOT为C:\Program Files\go,那么PATH变量可追加上C:\Program Files\go\bin。

GOPATH

如果有朋友了解python,可以将其类比为python的环境变量PYTHONPATH,用来设置我们的工作目录,即编写代码的地方。包也都是从GOPATH设置的路径中寻找。

在go 1.8之前,该变量必须手动设置。go 1.8及之后,如果没有设置,默认在$HOME/go目录下,即你的用户目录中的go目录下。

类unix系统环境变量的设置方式:使用export命令设置环境变量,并将命令加入到/etc/profile,该文件会在开启shell控制台的情况下执行。具体操作命令如下:

$ sudo vim /etc/profile
...
export GOROOT=/usr/local/go         // 默认位置可不用设置,1.10版本后也可以不设置
export PATH=$PATH:$GOROOT/bin
export GOPATH=/Users/polo/work/go   // 可设置多个目录

需要重启下控制台。接着我们可以用go env看一下变量的配置情况。 

GOPATH

在弹出的菜单里找到 GOPATH 对应的选项点击编辑之后就可以修改了,没有的话可以选择新建,并将变量名填写为 GOPATH,变量值设置为任意目录均可(尽量选择空目录),例如 D:\Go。

提示:填写完成后,每个打开的窗口都需要点击“确定”来保存设置。

配置Go代理增加golang包的下载速度 :https://goproxy.cn/

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

macOS 或 Linux 打开你的终端并执行

$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn

或者

$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile

Windows打开你的 PowerShell 并执行

C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"

1. 打开“开始”并搜索“env”
2. 选择“编辑系统环境变量”
3. 点击“环境变量…”按钮
4. 在“<你的用户名> 的用户变量”章节下(上半部分)
5. 点击“新建…”按钮
6. 选择“变量名”输入框并输入“GO111MODULE”
7. 选择“变量值”输入框并输入“on”
8. 点击“确定”按钮
9. 点击“新建…”按钮
10. 选择“变量名”输入框并输入“GOPROXY”
11. 选择“变量值”输入框并输入“https://goproxy.cn”
12. 点击“确定”按钮

在GOPATH正确配置在环境变量下且明明已经使用go get下载对应的第三方包,在程序能正常运行的情况下,vscode却总是提示没有找到对应包,飘红线,且在代码书写时无法自动进行补全。

原因网上大神说的原因是:vscode还没有很好的兼容go mod

解决办法

1.go mod init main(建立mod)

2.go mod vendor (把mod中的包依赖在复制一份到当前目录)

在依赖包下载完成后可以把env:GO111MODULE 的值改为auto也可以解决红色波浪线问题