Go用go get安装bbolt提示无go.mod文件报错解决方法咨询
报错核心原因
Go 1.17及之后版本调整了包管理逻辑:
- 不在Go模块(即当前目录及父目录不存在
go.mod文件)的场景下,go get命令不再支持直接安装依赖 - 全局安装可执行命令必须使用带明确版本后缀的
go install,不带版本号的go install无法正常执行
你之前执行go install go.etcd.io/bbolt/...未生效,就是因为没有指定版本标识,不符合新版命令的语法要求。
正确操作步骤
根据你的实际使用需求,对应选下面的操作即可:
场景1:在自己的项目代码中引入bbolt包使用
- 第一步:进入你的项目根目录,如果还没初始化Go模块,先执行初始化命令,把命令里的模块名替换成你自己的项目标识即可:
go mod init 你的项目模块名 - 第二步:拉取指定版本的bbolt依赖。如果需要特定版本/特定分叉,直接在包路径后加
@版本号/提交哈希/分支名即可,例如安装v1.3.8正式版:go get go.etcd.io/bbolt@v1.3.8
如果是第三方分叉版本,把包路径替换成对应分叉的仓库路径,后面跟上需要的版本标识就行。命令执行完成后,依赖信息会自动写入go.mod和go.sum文件,代码中直接import对应包即可调用。
注意:拉取项目依赖时不需要在包路径后加
/...后缀,直接写包根路径加版本标识即可。
场景2:全局安装bbolt自带的命令行工具
不需要进入项目目录,直接执行带版本后缀的go install命令即可,例如安装最新版cli工具:go install go.etcd.io/bbolt/cmd/bbolt@latest
如果需要安装指定版本,把@latest替换成你需要的版本号、对应提交哈希即可。安装完成后,二进制文件会存放到GOPATH下的bin目录,将该路径加入系统PATH环境变量后,就能全局调用bbolt命令。
内容的提问来源于stack exchange,提问作者kolaveri
相关产品推荐
相关产品推荐

