srcbinpkg

pkg:保存归档文件(扩展名为 .a 的文件,即 archive 文件)这是程序编译后生成的静态库文件。
注意:在 pkg 下实际上还有一个平台相关目录(目标操作系统对应的目录),所有的归档文件都在这个目录下

当前出现了三个子目录

[root@localhost pkg]# ls
linux_amd64  mod  sumdb

第一个目录 linux_amd64

因为该go环境是在Linux系统上运行的

//这个一个与平台相关的目录,即操作系统对应的目录
[root@localhost ligato]# pwd
/root/go/pkg/linux_amd64/github.com/ligato
[root@localhost ligato]# ls
vpp-agent.a

第二个目录 mod

[root@localhost mod]# ls
9fans.net  cloud.google.com  github.com  golang.org    google.golang.org  go.starlark.net@v0.0.0-20200821142938-949cc6f4b097  go.uber.org  mvdan.cc
cache      git.fd.io         go.etcd.io  go.ligato.io  gopkg.in           gotest.tools@v2.2.0+incompatible                    honnef.co    sigs.k8s.io
开启GO11MODULE=on 后,go get 安装的包将到 go/pkg下

go get -m [packages]会将下载的依赖包放到GOPATH/pkg/mod目录下,
并且将依赖写入到go.mod文件.

go get -u=patch会更新主模块下的所有依赖包。

Go 1.11版本支持临时环境变量GO111MODULE,通过该环境变量来控制依赖包的管理方式。

当GO111MODULE的值为on时GO111MODULE=off时GOPATH

使用顺序为:

vendorvendor$GOPATH/src$GOPATH$GOROOT/srcvendor$GOPATH
GO111MODULE=auto时

第三个目录 sumdb

[root@localhost sumdb]# ls
sum.golang.org

GOSUMDB

它的值是一个 Go checksum database,用于在拉取模块版本时(无论是从源站拉取还是通过 Go module proxy 拉取)

保证拉取到的模块版本数据未经过篡改,若发现不一致,也就是可能存在篡改,将会立即中止。

GOSUMDB的默认值为:sum.golang.org,在国内也是无法访问的,但是 GOSUMDB 可以被 Go 模块代理所代理(详见:Proxying a Checksum Database)。

因此我们可以通过设置 GOPROXY 来解决,而先前我们所设置的模块代理 goproxy.cn 就能支持代理 sum.golang.org,所以这一个问题在设置 GOPROXY 后,你可以不需要过度关心。