介紹
- Go 有很多配置, 可以通過(guò)環(huán)境變量指定. 也可以使用默認(rèn)值. 通過(guò)
go env
命令查看默認(rèn)值. -
GOROOT
和GOPATH
是必須要指定的.
常用的配置
GOROOT, GOPATH 和 GOTOOLDIR
-
GOROOT
是安裝路徑. 通常是/usr/local/go
. -
GOPATH
是下載包的存儲(chǔ)路徑. 通常是~/go
. -
GOTOOLDIR
是 Go 工具的路徑. 通常是$GOROOT/bin
.
GO111MODULE
-
GO111MODULE
指定是否使用module
, 建議設(shè)置為on
.
GOPROXY
設(shè)置 Go 代理.
后面會(huì)詳述.
GOMOD
- go.mod 文件路徑.
GOPROXY詳解
go get
等指令會(huì)拉取遠(yuǎn)程包, 這個(gè)遠(yuǎn)程包會(huì)通過(guò)GOPROXY
指定的代理來(lái)獲取.例如:
go get github.com/ame-lm/hi
, 首先會(huì)請(qǐng)求$GOPROXY/github.com/ame-lm/hi
, 然后遠(yuǎn)端代理返回信息, 告訴本地應(yīng)該解析成https://github.com/ame-lm/hi
, 然后本地再繼續(xù)請(qǐng)求https://github.com/ame-lm/hi
.也就是說(shuō)無(wú)論是不是從
golang.org
這個(gè)官方站點(diǎn)拉取包, 都需要走$GOPROXY
.golang.org
站點(diǎn)和$GOPROXY
是獨(dú)立的, 并無(wú)關(guān)系.GOPROXY
默認(rèn)值https://proxy.golang.org
在國(guó)內(nèi)正常情況下是走不通的, 需要更換國(guó)內(nèi)代理, 例如:https://goproxy.io
.設(shè)置
GOPROXY
之后, 就可以通過(guò)go get github.com/ame-lm/hi
拉取到對(duì)應(yīng)的 github 上的包了.