Hyperledger Fabric创建通道时提示osnadmin命令不存在如何解决?

2021-11-03 00:38:38.401 +06 [common.tools.configtxgen] doOutputBlock -> INFO 007 正在写入创世区块
- res=0 正在创建通道mychannel 使用组织1
- 执行
osnadmin channel join命令返回res=127- scripts/createChannel.sh: 第40行: osnadmin: 未找到命令
- 通道创建失败
问题原因
res=127是Linux系统下的命令不存在错误,对应此场景的具体原因有三类:
- 使用的Hyperledger Fabric版本低于2.3:
osnadmin是Fabric 2.3版本才正式引入的Orderer节点管理工具,低于该版本的Fabric二进制包中没有该命令 - 二进制文件路径未加入系统环境变量:即使使用2.3及以上版本的Fabric,没有将存放
osnadmin的fabric-samples/bin目录加入PATH变量,系统也无法定位到命令 - 脚本执行时未继承环境变量:当前终端已经配置了PATH,但直接执行createChannel.sh脚本时,子shell没有继承当前终端的环境变量,依然找不到命令
解决方案
按优先级依次排查即可:
- 确认Fabric版本:在test-network目录执行
peer version,如果版本号低于2.3,重新下载2.3及以上版本的Fabric镜像和二进制文件,执行./bootstrap.sh 2.5.5 1.5.8即可下载适配的稳定版本 - 配置环境变量:在test-network目录执行
export PATH=${PWD}/../bin:$PATH,执行完成后运行osnadmin version验证,能正常输出版本号说明配置生效 - 调整脚本执行方式:不要直接运行
./scripts/createChannel.sh,改为source ./scripts/createChannel.sh执行,让脚本继承当前终端的环境变量;也可以直接修改createChannel.sh脚本,在开头加入一行配置,写入bin目录的绝对路径:export PATH="/home/mkhan/hypfabric/abrar/fabric-samples/bin:$PATH"
内容的提问来源于stack exchange,提问作者M. Khan
相关产品推荐
相关产品推荐

