前言

本机系统:CentOS 7.5

  • 源码安装:标准的软件安装方式,可以定制,表示不会使用
  • 标准包安装Go提供了方便的安装包,并支持各种系统,适合快速安装,表示强烈推荐
  • 第三方工具安装:比较推荐多版本管理工具gvm,不推荐使用软件包管理器yum、apt、homebrew安装旧版本

安装

下载Go发行版安装到指定位置/opt/go

1
2
wget https://studygolang.com/dl/golang/go1.15.2.linux-amd64.tar.gz
tar -xzf go1.15.2.linux-amd64.tar.gz -C /opt

修改配置文件

1
2
cp /etc/profile /etc/profile.bak
vi /etc/profile

添加环境变量

1
2
export GOROOT=/opt/go
export PATH=$PATH:$GOROOT/bin

立即生效

1
source /etc/profile

查看版本

1
go version

测试

新建hello.go

1
vi hello.go

写入以下内容

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}

接着运行

1
2
[root@sangpub ~]# go run hello.go
hello, world

查看环境信息

打印Go的环境信息

1
go env

GOARCH:目标处理器架构
GOBIN:编译后文件目录
GOHOSTOS: 目标操作系统
GOPATH:当前工作目录
GOROOT:标准包安装目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
... 

GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/opt/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""

...

GOPATH

Go 1.8 版本之后,GOPATH 默认在用户目录的 go 文件夹下

设置当前目录为工作目录

1
2
export GOPATH=`pwd`
source /etc/profile

GOBIN

一般默认在$GOPATH/bin

表示生成编译好的二进制文件在这里

Goproxy

可能会出现以下错误,则需要修改Go模块代理

1
2
[root@shanhe]# go build
go: github.com/Masterminds/sprig/v3@v3.1.0: Get "https://proxy.golang.org/github.com/%21masterminds/sprig/v3/@v/v3.1.0.mod": dial tcp 172.217.160.81:443: i/o timeout

Go 1.13 及以上(推荐)

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

macOS 或 Linux

1
2
export GO111MODULE=on
export GOPROXY=https://goproxy.cn

go get

go get可以借助代码托管来获取源码进行编译安装,通常可以直接使用

获取前,请确保 GOPATH 已经设置

获取后,会存放在$GOBIN

1
go get -u github.com/caddyserver/xcaddy/cmd/xcaddy