Golang environments

From wikinotes

Go uses a small number of environment variables to configure builds, modules.
Modules are explicit/sealed off, there isn't much of a case for tools like nix unless you're using extensions or alternative compilers.

Documentation

environment variables https://pkg.go.dev/cmd/go#hdr-Environment_variables

Locations

~/.config/go/env 'go env' set environment variables

Environment Variables

A small subset of useful environment variables.

GOPATH=
GOBIN=~/go/bin                               # where go installed executables should go

GOPROXY=

private/privacy options

# packages that should not be indexed publicly
# (reused by GONOPROXY, GONOSUMDB if they are not set)
GOPRIVATE=*.corp.example.com,rsc.io/private
GONOPROXY=*.corp.example.com,rsc.io/private
GONOSUMDB=*.corp.example.com,rsc.io/private

Go Env

go env lets you set/persist go environment variables.
They will be loaded in new shells automatically.

go env -w GOBIN=/foo/bar/bin  # set default envvar val within environment
go env -u GOBIN               # unset environment variable set by 'go env'