[Golang] GOROOT 及 GOPATH

Golang 中会涉及两个常用环境变量:

  • GOROOT: 标识 Go SDK 的位置,一般情况下不用改,除非要切换到其他 Go 版本
  • GOPATH: 定义工作区(workspace)的位置。 默认情况下为 ~/go 目录。其中包含
    • bin: go 编译后的可执行文件
    • pkg:包含编译后的包代码,即 .a 文件
    • src: 源码目录,包含诸如 .go.c.g.s 等类型文件

GOPATH 也是 go install 等命令依赖的目录。 可以使用默认目录,也可以通过设置 $GOPATH 来自定义。

但推荐显式地设置一下 $GOPATH,这样能明确自己所处的工作空间位置,同时将 $GOPATH/bin 添加到系统的 $PATH 中这样通过 go install 安装的三方工具就可直接运行了。

fish shell 中设置 $GOPATH

# ~/.config/fish/config.fish

set -x GOPATH $HOME/go # 或其他位置
set -x PATH $PATH $GOPATH/bin

除了以上两个环境变量,还有很多可配置的 Go tool 环境变量,可通过 go env 查看到:

$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/wayongliu/Library/Caches/go-build"
GOENV="/Users/wayongliu/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/wayongliu/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"

以上。

相关资源