栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go的目录结构pkg

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go的目录结构pkg

src: 源码文件
bin: 编译生成的而可执行文件
pkg: 平台相关目录(目标操作系统目录),编译后生成的文件

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时
    那么就会使用modules功能.
    这种模式下, G O P A T H 不 再 作 为 b u i l d 时 导 入 的 角 色 , 依 赖 包 会 存 放 在 GOPATH不再作为build时导入的角色,依赖包会存放在 GOPATH不再作为build时导入的角色,依赖包会存放在GOPATH/pkg/mod目录下。
    工程中的依赖包也会从此目录下查找。

  • GO111MODULE=off时
    go命令行将不会使用新的module功能,它将会在vendor目录下和GOPATH目录中查找依赖包。
    这种模式叫GOPATH模式。

使用顺序为:

  1. 优先使用vendor目录下面的包,
  2. 如果vendor下面没有搜索到,再搜索$GOPATH/src下面的包,
  3. 如果 $GOPATH下面没有搜索到,那么搜索$GOROOT/src下面的包,
  4. 要么完整使用vendor下面的包,要么完整使用$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 后,你可以不需要过度关心。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号