go env命令下,众多变量的基础解释!

1,115 阅读3分钟

Golang中的环境变量基础解释

最近因为学习Golang的缘故,好奇的去了解了一下Go安装到系统中后,默认的env变量有多少,各个变量都有什么含义,方便后续针对特殊场景做出相应的修改,今天简单整理给大家。

说明

自带英文的比较全,也解释的比较清晰,可能还会附带详细的网页地址(需要科学上网),大家自行选择。

英文版本命令

查看原版命令:go help environment

示例图

image.png

中文基本解释(后期根据需要会有所改动)

  • GO111MODULE - 区分模块感知模式或GoPath模式
    • on - 启用模块感知模式,加载项目中的go.mod文件依赖
    • off - 加载GOPATH下的文件包引入进来
    • auto - 先找go.mod文件,没有再去找GOPATH
  • GCCGO - 运行命令go build -compiler=gccgo
  • GOARCH - 用于编译代码的体系结构或处理器
    • amd64(intel), 386(老cpu), arm(mac m1), ppc64
  • GOBIN - go install执行后生成文件的目录
    • 默认是GOPATH下的bin目录
  • GOCACHE - GO存储缓存的目录,方便后续项目重用信息
  • GOMODCACHE - Go用来存储下载模块的目录
  • GODEBUG - 启用各种调试工具
  • GOENV - Go环境配置文件的位置,不能用go env -w进行配置或修改
  • GOFLAGS - 空格分隔的标记值,格式:-flag=值
  • GOHOSTARCH - Go二进制文件的架构
    • 例如:amd64
  • GOHOSTOS - Go二进制文件的操作系统
    • 例如:windows
  • GOINSECURE - 逗号分隔的glob模式列表(在Go的path.Match函数中),总是以不安全的模式进行获取。不会禁用校验和数据库验证。GOPRIVATE或GONOSUMDB可以用来实现这个目标。
  • GOPRIVATE, GONOPROXY, GONOSUMDB - 逗号分隔的glob模式列表(在Go的path.Match函数中),总是以不安全的模式进行获取。不会禁用校验和数据库验证
  • GOMODCACHE - Go存储下载模块的目录,对应go.mod文件
  • GOOS - 编译代码的操作系统,切换值可编译试用不同系统的程序。
    • 例如:linux, darwin, windows, netbsd.
  • GOPATH - 存储Go源代码、package包和编译后程序的路径。默认会在用户目录下。
  • GOPROXY - Go模块网络代理Url地址。
  • GOROOT - Go安装环境根地址
  • GOSUMDB - 要使用的校验和数据库的名称以及它的公钥和URL(可选)。
  • GOTMPDIR - Go的临时目录,会写入临时源文件、包和二进制文件。
  • GOTOOLDIR - go工具(compile, cover, doc等)安装的目录。
  • GOVCS - 列出可能与匹配的服务器一起使用的版本控制命令。
  • GOVERSION - 当前安装的Go版本
  • GOAMD64 - 对于amd64环境下,要编译的微架构级别。有效值为v1(默认值)、v2、v3、v4。
  • AR - 操作库存档时使用的命令
  • CC - 使用命令编译C代码
  • CXX - 使用命令编译C++代码
  • CGO_ENABLED - 是否支持cgo命令,值范围:0或1
  • GOMOD - go.mod文件的绝对路径。如果模块感知模块是启用的,那么它是(根据操作系统不同,值不同,Unix系统为:"/dev/null",windows系统为"NUL)