Ubuntu虚拟机执行Hyperledger Fabric peer命令报错求助
peer命令配置错误的思路 我之前部署Fabric时也碰到过一模一样的报错,结合官方文档和踩坑经验,给你几个具体的排查方向:
检查
FABRIC_CFG_PATH环境变量是否配置peer命令必须通过这个环境变量找到核心配置文件core.yaml,MAC本地大概率已经自动配置好了,但虚拟机里可能遗漏了。
先执行echo $FABRIC_CFG_PATH,如果输出为空,就手动设置:# 替换成你实际存放core.yaml的目录,比如解压Fabric二进制包后的config目录 export FABRIC_CFG_PATH=/your/fabric/config/directory要是想让配置永久生效,把这条命令追加到
~/.bashrc或者~/.profile里,再执行source ~/.bashrc刷新环境。确认
core.yaml文件存在且路径正确
即使设置了环境变量,也要确保指定的目录下确实有core.yaml。执行ls $FABRIC_CFG_PATH查看文件列表,如果没有的话,从你下载的Fabric二进制压缩包的config目录里复制一份过来——官方压缩包解压后都会自带完整的配置文件。检查
core.yaml的格式与权限
有时候虚拟机里的配置文件可能因为跨系统复制、下载中断导致格式损坏,用cat $FABRIC_CFG_PATH/core.yaml查看内容,确认是标准的YAML格式,没有乱码或缺失内容。
另外要保证当前用户有读取权限,执行ls -l $FABRIC_CFG_PATH/core.yaml,如果权限不足,用chmod 644 $FABRIC_CFG_PATH/core.yaml调整。验证Fabric二进制文件的系统兼容性
注意不要把MAC版本的Fabric二进制文件放到Ubuntu虚拟机里用!重新下载对应Ubuntu(amd64架构)的二进制包,解压后替换虚拟机里的文件,再重试peer命令。
内容的提问来源于stack exchange,提问作者radoslav55

