必须先用 go mod init 初始化模块才能生成 go.sum;安装 Fiber 需指定 /v2 后缀,即 go get github.com/gofiber/fiber/v2;go.sum 是自动生成的校验快照,不可手动修改,其有效性依赖 go.mod 中精确的 require 声明。

直接运行 go get github.com/gofiber/fiber/v2 就能同时安装 Fiber 并生成/更新 go.sum,前提是项目已初始化为 Go 模块(即存在 go.mod)。没初始化?先 go mod init myapp。
必须先有 go.mod 才能触发 go.sum 生成
Go 不会为非模块项目生成 go.sum。如果你直接 go get 而没初始化模块,依赖会被下载到 $GOPATH/pkg/mod,但当前目录下不会出现 go.sum,后续构建或 CI 会因校验缺失失败。
- 检查是否已有
go.mod:运行ls go.mod,无输出就说明还没初始化 - 初始化命令:
go mod init example.com/myserver(模块路径建议用域名前缀,避免冲突) - 初始化后立刻生成空
go.sum:它会在首次go get或go build时自动创建
go get 命令必须带 /v2 后缀
不写 /v2 会导致模块解析失败,go.sum 里可能记录错误版本甚至拉取 v1 兼容层(已废弃),最终编译报错或运行时 panic。
- ✅ 正确:
go get github.com/gofiber/fiber/v2 - ❌ 错误:
go get github.com/gofiber/fiber(默认解析为 v0/v1,不兼容) - ❌ 错误:
go get -u github.com/gofiber/fiber/v2(-u可能升级次版本,破坏语义化版本约束)
go.sum 文件不是“手动维护”的,而是校验快照
go.sum 是 Go 自动生成的依赖哈希快照,不是配置文件。你不需要、也不应该手动编辑它。
- 添加新依赖后,
go.sum会自动追加对应条目 - 删掉
go.sum再执行go build,它会重新生成(但需网络重拉所有依赖校验) - CI 环境中若提示
checksum mismatch,通常是本地go.sum和远程不一致,应以go mod tidy为准并提交更新后的go.sum
最常被忽略的一点:go.sum 的有效性完全依赖于 go.mod 中的 require 声明是否精确——如果误用了 replace 指向本地路径又没同步提交,go.sum 校验就会在别人机器上直接失败。


















