Golang安装

Golang官网提供了各平台的二进制包,可直接下载并安装。由于某种不可抗力,golang.org被屏蔽无法直接访问,但可以通过官方提供的国内版官网golang.google.cn进行下载。

除了直接通过二进制包安装外,也可通过包管理器安装。如在Ubuntu中使用apt-get install golang,或在MacOS中使用brew install go下载安装。

另外,也可通过官网或GitHub下载源码后编译安装,可参考官方提供的源码安装文档

非预装官方包

在使用Go时,除了Go标准库以外,Google还提供了一些扩展包,但不包括在二进制安装包中,需要另外使用go get命令进行安装。例如在VSCode中安装Golang相关扩展插件时需要安装一些第三方包,而它们大多会使用到官方提供的非预装扩展包。官方非预装扩展包的命名以为golang.org/x/开头,例如golang.org/x/tools,下面列出了各官方非预装扩展包及其用途:

  • benchmarks:性能测试支持
  • blog:blog.golang.org源码实现
  • build:build.golang.org源码实现
  • crypto:额外的密码学支持
  • debug:实验性的Go debugger
  • image:额外的图像支持
  • mobile:移动端支持
  • net:额外的网络支持
  • perf:性能分析工具
  • pkgsite:pkg.go.dev源码实现
  • review:Gerrit代码review工具支持
  • sync:额外的并发支持
  • sys:系统调用支持
  • text:文本处理支持
  • time:额外的时间相关支持
  • tools:godoc、goimports等工具
  • tour:tour.golang.org源码实现
  • exp:实验性以及落后的特性

golang.org包的安装

由于golang.org以及google.golang.org在国内无法访问,为了安装这些包,可以通过GitHub下载源码进行安装或在Go13及以上版本中通过设置GOPROXY进行安装:

通过GitHub下载源码安装

golang.org包在GitHub上有对应的镜像,例如golang.org/x/tools包对应的GitHub镜像为https://github.com/golang/toolsgoogle.golang.org/grpc包对应的镜像为https://github.com/grpc/grpc-go

在对应的镜像中下载源码后,需要将其放置于GOPATH环境变量指定的目录下。例如下载golang.org/x/tools包后,需要将其移动到$GOPATH/src/golang.org/x/tools目录中。

下面以golang.org/x/image为例演示如何进行安装:

# 下载源码,使用--depth=1只克隆最后一次commit
$ git clone https://github.com/golang/image.git --depth=1
$ mkdir -p $GOPATH/src/golang.org/x
$ mv image $GOPATH/src/golang.org/x

通过GOPROXY设置代理服务安装(推荐)

Go11加入了go module包依赖管理工具,并增加了GOPROXY环境变量设置代理服务。设置该环境变量后,使用go get下载包时将通过设置的代理地址下载。当前可使用的代理服务有https://goproxy.io、阿里云的https://mirrors.aliyun.com/goproxy/等,可根据需求选择。

在使用GOPROXY之前需要开启go module,开启go module的方式为设置GO111MODULE环境变量的值为on

$ export GO111MODULE="on"

若使用Go13及以上版本,可使用下面的命令设置代理服务:

$ go env -w GOPROXY="<proxy>,direct"

若使用Go11或Go12,需要使用下面的命令设置:

$ export GOPROXY="<proxy>"

使用export命令只会在本次登陆中有效,若需要长期有效需要将其写入profile文件中(例如Bash的.bash_profile或zsh的.zshrc)。

在Windows中可通过下面的命令设置:

$env:GOPROXY="<proxy>"

在使用命令时,需要将命令中的<proxy>替换为对应代理服务的地址。在设置GOPROXY后,就可正常使用go get命令下载安装golang.org包。

参考资料