Go版本需≥1.21(v2最低1.19,但1.21为当前稳定兼容底线),执行go version确认;低于则下载官方二进制安装;必须显式指定/v2,禁用-u,且须先go mod init再go get。

直接运行 go get github.com/gofiber/fiber/v2 即可,但必须先确认 Go 版本 ≥ 1.21(v2 实际最低要求是 1.19,但 1.21 是当前稳定兼容底线)
检查 Go 版本是否达标
执行 go version,输出应类似 go version go1.21.10 darwin/arm64 或更高。若低于 1.21:
- 别用
go install golang.org/dl/go1.24@latest这类 v3 专用命令——它会装错版本 - 推荐用官方二进制安装:去 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载
go1.21.10或go1.22.8安装包 -
go version输出含devel或beta字样?立刻换回正式版,Fiber v2 不保证兼容开发中版本
执行安装命令时的三个关键点
go get 行为在 Go 1.21+ 默认启用 module-aware 模式,但仍有陷阱:
- 必须显式写
/v2——go get github.com/gofiber/fiber会拉取 v1(已归档),不是你想要的 - 禁止加
-u:go get -u github.com/gofiber/fiber/v2可能升级到不兼容的次版本(如从v2.52.9跳到v2.53.0,后者移除了c.Locals的部分行为) - 如果项目已有
go.mod,运行命令后检查go.sum是否新增了github.com/gofiber/fiber/v2 v2.52.9这类明确带版本号的行;没出现说明没真正引入
为什么不用 go install 或全局安装
Fiber 是库,不是 CLI 工具,不存在“全局安装”概念:
-
go install github.com/gofiber/fiber/v2@latest会报错:no buildable Go source files - 某些旧教程写的
go get -d是冗余操作,go get本身已完成下载+编译+缓存 - 真正要验证是否装好,只看
go mod graph | grep fiber是否输出依赖行,或直接go run main.go启动一个最小服务
最常被忽略的是模块初始化顺序:先 go mod init myapp,再 go get github.com/gofiber/fiber/v2。跳过 go mod init 直接 go get,依赖会写进 ~/go/pkg/mod 但不会记录在项目 go.mod 中,后续 CI 构建必然失败。


















