CentOS7搭建Go开发环境

安装Go

获取安装包

官网或国内镜像查找最新版本,当前最新版本1.11.5 1.12

1
2
3
$ cd /tmp
# wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
$ wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz

解压安装包

1
2
3
4
# sudo tar -xzf go1.11.5.linux-amd64.tar.gz -C /usr/local
$ sudo tar -xzf go1.12.linux-amd64.tar.gz -C /usr/local

# 查看/usr/local会发现多了一个go目录

配置Go

理解环境变量

  • /usr/local/go中包含开发工具及标准库,为了使其正常使用需配置环境变量
  • GOROOT
    • Go安装目录的根目录即/usr/local/go,主要用于查找Go工具及标准库
    • Go工具目录为/usr/local/go/bin
  • GOBIN
    • Go程序经过编译、构建生成的可执行文件的全局存放路径,其值是一个目录的绝对路径
    • go installgo get命令会将构建好的可执行文件放于此处
    • GOBIN优先级比GOPATH/bin要高,如果配置了GOBIN可执行文件就会安装到GOBIN而不是GOPATH/bin
    • 通常将其放入系统PATH环境变量中方便运行程序
  • GOPATH
    • Go程序开发工作目录的根目录,详见GOPATH详解
    • 默认情况下,Unix/Linux中为$HOME/go,在Windows为%USERPROFILE%/go
    • 如果想更改位置一定要设置该环境变量
    • 注意:1.11及以后版本因Go Modules的引入GOPATH将逐步被取代
  • GOPROXY
    • 到指定网址下载依赖代码,不设置默认从官方网址下载
  • GOCACHE
    • 存放Go程序构建时生成的执行文件,默认路径$HOME/.cache/go-build
    • 官方文档
  • 其他环境变量详见官方文档

配置环境变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 修改配置文件
$ vim /etc/profile OR vim $HOME/.profile

# 添加Go相关环境变量配置
# Go Dev Env Config
export GOROOT=/usr/local/go
export GOPATH=/vagrant/go
export GOBIN=$GOPATH/bin 
export GOPROXY=https://goproxy.io
export PATH=$PATH:$GOROOT:$GOROOT/bin:$GOPATH:$GOBIN

# 使之生效
$ source /etc/profile OR source $HOME/.profile

GOPATH其他配置方法,详见官方Wiki

验证Go

  • 任意目录输入go env查看环境变量
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
GOARCH="amd64"
GOBIN="/vagrant/bin"
GOCACHE="/home/vagrant/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/vagrant/go"
GOPROXY="https://goproxy.io"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 \ 
-fdebug-prefix-map=/tmp/go-build353847513=/tmp/go-build -gno-record-gcc-switches"
  • 输入go version查看版本
1
2
# go version go1.11.5 linux/amd64
go version go1.12 linux/amd64

卸载Go

  • 删除Go安装目录即/usr/local/go
  • 删除环境变量,修改/etc/profile$HOME/.profile删除你说添加的与Go有关的环境变量

编写Go

创建项目

1
$ mkdir -p $GOPATH/src/hello

创建源文件

1
2
# 不一定要是main.go
$ vim $GOPATH/src/hello/hello.go

编写源文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// 添加如下内容
package main

import (
	"fmt"
)

func main() {
    fmt.Println("Hello, World! Golang")
}

构建并运行

1
2
3
$ go install $GOPATH/src/hello/hello.go
$ hello
Hello, World! Golang

概览Go

A Tour of Go

参考