首页 > Go学习 > Go语言环境变量设置
2021
09-05

Go语言环境变量设置

Go语言会在编译器内部设置一套环境变量来配置运行环境来保证正常运行

我们也可以在环境变量中设置同名的变量来覆盖编译器内部的值

go env [-json]:查看当前Go语言的的所有环境变量
    如果系统环境变量中设置了相同变量,则会显示系统环境变量的值

go env -u key :将编译器内部的一个环境变量的值删除(设置为空),该环境变量会使用默认值

go env -w key1=val2 key2=val2 ... : 设置编译器内部的环境变量的值
    如果系统环境变量中也设置了相同变量,该命令会报错
    但是编译器内部的环境变量值已经更改
    当删除系统环境变量时会生效

Go语言中常见的环境变量

GOARCH:程序构建环境的计算架构
GOOS:程序构建环境的操作系统
GOHOSTARCH:程序运行环境的目标计算架构
GOHOSTOS:程序运行环境的目标操作系统

GOENV:Go的环境变量配置文件,通过-w选项配置的环境变量会自动添加到该文件

GOVERSION:Go的版本
CGO_ENABLED:指明cgo工具是否可用,1表示可用,0表示不可用

GOROOT:Go语言的安装目录的绝对路径
GOTOOLDIR:Go工具目录的绝对路径
GOTMPDIR:Go的临时目录
GOEXE:可执行文件的后缀
GOCACHE:Go的程序缓存文件存放的目录

GOPATH:go的工作目录,包含我们所有的源码和一些编译生成的文件
GOBIN:存放程序生成的可执行文件目录,默认为$GOPATH/bin

GO111MODULE:指定module功能的开启,可选值有off、on、auto
GOMOD:项目go.mod文件的路径,项目中不存在该文件该变量为空
GOMODCACHE:go.mod文件中指定依赖的包下载存放的目录

GOINSECURE:指定哪些域名下的仓库不去校验CA证书,默认必须是https协议

GOPROXY:设置Go Module下载请求的镜像资源网址
GOSUMDB=sum.golang.org
    为了下载的依赖包安全考虑(特别是设置了GOPROXY之后),在本地对依赖进行变动(更新/添加)操作时,Go都会去指定校验服务器进行数据校验,保证下载的代码库和校验服务器记录的相同,go.sum文件就包含了对依赖包进行计算得到的校验值
    GOSUMDB配置就是指定使用哪个校验服务器和公钥来做依赖包的校验
    可以设定其值为off来关闭校验功能
        格式db_name publickey url
        其中db_name为校验服务器名称
        publickey为指定的公钥
        url为校验服务器的网址,省略会默认为https://db_name
    当GOPROXY="https://proxy.golang.org"时,GOSUMDB默认指向"sum.golang.org",其他的代理网址该配置都是默认关闭的
    Go中保存了2个预设的db_name:"sum.golang.org"和"sum.golang.google.cn "(已经提前预设了这2个db_name的publickey和url)
GONOSUMDB
    如果代码仓库或者模块是我们信任的或者私有的,那么它就无需校验或者校验值不包含在互联网的公有数据库里面,此时本地编译不仅会校验失败,更会泄漏一些私有仓库的路径等信息
    这时可以使用GONOSUMDB来设置不做校验的代码仓库,它可以设置多个匹配路径,用逗号相隔
GOPRIVATE:设置不使用镜像资源的仓库网址,多个域名使用逗号隔开
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。