已安装Hyperledger composer-cli仍被检测不到,执行createPeerAdminCard.sh报错
解决createPeerAdminCard.sh检测不到已安装的composer-cli问题
我之前搭建Hyperledger Composer时也碰到过一模一样的问题——明明已经全局装了composer-cli,脚本却死活检测不到。大概率是环境变量配置或者路径匹配的问题,试试下面这些排查步骤:
先确认composer-cli真的安装成功了
运行这个命令看看全局包列表里有没有它:npm list -g composer-cli如果输出里能看到composer-cli的版本(要求v0.19及以上),说明安装没问题;如果看不到,重新执行全局安装命令,必要时加sudo(Linux/Mac):
sudo npm install -g composer-cli@0.19检查npm全局bin路径是否在系统PATH中
首先获取npm全局包的安装前缀:npm config get prefix这个路径下的
bin目录就是composer命令所在的位置(比如Linux下通常是/usr/local/bin,Windows下是C:\Users\<你的用户名>\AppData\Roaming\npm)。
接着检查这个bin路径是否在系统PATH里:- Linux/Mac运行:
echo $PATH - Windows运行:
echo %PATH%
如果没找到对应的路径,把它添加到环境变量中: - Linux/Mac:编辑
~/.bashrc或~/.zshrc,添加一行export PATH=$PATH:$(npm config get prefix)/bin,然后执行source ~/.bashrc(或对应的配置文件)刷新环境。 - Windows:在系统环境变量的PATH里手动添加找到的bin路径,然后重启终端。
- Linux/Mac运行:
验证composer命令是否能直接调用
打开新的终端窗口,运行:composer --version如果能正常输出版本号,说明环境变量已经生效,再重新运行
./createPeerAdminCard.sh应该就没问题了。极端情况:手动修改脚本指定composer路径
如果上面的方法都不行,可以直接修改createPeerAdminCard.sh脚本里的检测逻辑。找到脚本中判断composer命令的部分,把composer替换成你实际的composer绝对路径(比如/usr/local/bin/composer),这样脚本就能直接找到命令了。
内容的提问来源于stack exchange,提问作者Arnaud Carrere
相关产品推荐
相关产品推荐

