使用go get命令安装Hyperledger Fabric CA时出现报错如何解决?
Fabric CA安装报错解决方案
报错原因说明
本次报错分为两类:
go get弃用警告:Go 1.16及以上版本的模块模式中,go get安装可执行文件的功能已被官方废弃,要求改用go install命令- 编译错误:
undefined: bccsp.RSA2048KeyGenOpts和SendLoop参数不匹配两个错误,均为Fabric CA v1.5.2版本与Go 1.17版本、上游依赖版本不兼容导致,Fabric CA v1.5.2官方适配的Go版本为1.16.x系列。
解决步骤
方案一:使用官方适配版本安装(最稳妥)
- 先将本地Go版本降级到1.16.x任意稳定版本
- 替换原来的
go get命令,执行对应安装操作:# 安装fabric-ca服务端 go install github.com/hyperledger/fabric-ca/cmd/fabric-ca-server@v1.5.2 # 安装fabric-ca客户端 go install github.com/hyperledger/fabric-ca/cmd/fabric-ca-client@v1.5.2 - 安装完成后执行
fabric-ca-server version即可验证是否安装成功。
方案二:不降级Go版本,源码编译
如果不想降级Go版本,可以拉取源码通过项目自带脚本编译,自动适配依赖版本:
- 拉取Hyperledger Fabric CA官方仓库源码到本地
- 切换到对应版本标签:
cd fabric-ca && git checkout v1.5.2 - 执行编译命令:
make fabric-ca-server fabric-ca-client - 编译完成后,二进制文件会生成在项目的
bin目录下,手动移动到$GOPATH/bin或者任意已加入环境变量的目录即可正常使用。
方案三:安装最新版本Fabric CA
如果不需要指定v1.5.2版本,可以直接安装已适配高版本Go的最新版Fabric CA:
go install github.com/hyperledger/fabric-ca/cmd/fabric-ca-server@latest go install github.com/hyperledger/fabric-ca/cmd/fabric-ca-client@latest
内容的提问来源于stack exchange,提问作者proxima
相关产品推荐
相关产品推荐

