运行Hyperledger Fabric BYFN端到端测试时遇peer命令未找到错误
这个错误我在部署Fabric BYFN时碰到过好几次,核心原因就是当前执行环境找不到peer二进制工具,下面是一步步的排查和解决方法:
先确认Fabric二进制工具是否存在
首先到你的fabric-samples/bin目录下看看有没有peer这个文件。如果找不到,说明二进制工具没下载成功,直接在fabric-samples目录下执行这条命令重新下载:curl -sSL https://bit.ly/2ysbOFE | bash -s这条命令会自动下载对应版本的Fabric二进制工具和镜像。
检查环境变量是否正确配置
peer命令需要在系统PATH里能被找到。你可以在终端输入echo $PATH,看看输出里有没有包含fabric-samples/bin的路径。如果没有,手动添加:export PATH=$PATH:/你的fabric-samples目录绝对路径/bin export FABRIC_CFG_PATH=/你的fabric-samples目录绝对路径/config比如你的fabric-samples在
~/fabric-samples,那就是:export PATH=$PATH:~/fabric-samples/bin export FABRIC_CFG_PATH=~/fabric-samples/config执行完后记得用
source ~/.bashrc(bash终端)或者source ~/.zshrc(zsh终端)让配置立即生效。另外,你可以打开scripts/script.sh看看开头的环境变量设置,确保../bin和../config的相对路径是正确的——如果你的first-network目录不在fabric-samples下,相对路径就会出错,改成绝对路径更稳妥。确保在正确的目录执行脚本
一定要进入fabric-samples/first-network目录后再执行./byfn.sh -m up!如果在其他目录运行,脚本里的相对路径会找不到peer工具,直接报错。清理残留环境后重试
之前的失败部署可能留下了混乱的环境,先彻底清理:./byfn.sh -m down这条命令会删除所有相关容器、镜像、通道文件和配置,然后再重新执行
./byfn.sh -m up,从头开始部署。检查
peer文件的执行权限
如果peer文件存在但还是报错,可能是没有执行权限,执行这条命令添加权限:chmod +x /你的fabric-samples目录绝对路径/bin/peer
按照上面的步骤排查,基本就能解决这个问题了。
内容的提问来源于stack exchange,提问作者Rak

