使用Composer与Fabric 1.2时遇版本兼容错误,求解决方案
看起来你遇到的问题大概率是环境中残留的旧版Composer组件或者脚本配置冲突导致的——毕竟官方文档明确说明Composer 1.8.x是支持Fabric 1.2的,错误提示里的“要求v0.20或更高版本”更像是旧版本检测逻辑在捣乱。下面是我整理的几个排查和修复步骤:
彻底清理并重装指定版本的Composer组件
升级过程中很容易留下全局或本地的旧版依赖,导致版本检测混乱。先把所有Composer相关包卸载干净:npm uninstall -g composer-cli composer-rest-server composer-playground composer-common composer-admin composer-client npm cache clean --force然后重新安装1.8.3版本的核心组件:
npm install -g composer-cli@1.8.3 composer-rest-server@1.8.3 composer-playground@1.8.3安装完成后用
composer --version确认版本确实是1.8.3。检查Fabric环境的一致性
确保你的Fabric 1.2环境是完整且版本统一的:- 用
docker images查看所有fabric相关镜像(peer、orderer、ca等),确认标签都是1.2.x,没有混合其他版本的镜像 - 检查Fabric二进制文件的版本,确保
peer、orderer等工具的版本也是1.2.x
- 用
修复createPeerAdminCard.sh脚本的版本检测
有些旧版的createPeerAdminCard.sh脚本里的版本检查逻辑可能没有更新,会错误判断Composer 1.8.3的兼容性。你可以打开脚本查看里面的版本校验代码,比如有没有类似if [ "$COMPOSER_VERSION" \< "0.20.0" ]的判断,如果有的话,修改成适配1.8.x的逻辑(比如改成if [ "$COMPOSER_VERSION" \< "0.19.0" ]或者直接注释掉这段校验)。
另外,运行脚本时可以显式指定Composer版本:COMPOSER_CLI_VERSION=1.8.3 ./createPeerAdminCard.sh重新核对Prerequisites的细节
再仔细检查一遍前置依赖的版本:- Node.js必须是8.x LTS版本(10.x及以上版本Composer 1.8.3不支持)
- npm版本建议在5.x左右,避免版本过高导致依赖安装异常
- Python必须是2.7.x版本,3.x版本会导致部分组件编译失败
如果以上步骤都试过还是不行,可以尝试删除所有旧的Composer卡片:
composer card delete -c PeerAdmin@hlfv1
然后重新运行脚本生成新的卡片,应该就能解决版本匹配的问题了。
内容的提问来源于stack exchange,提问作者Peter Shore

