未检测到composer-cli版本,执行createPeerAdminCard.sh报错求助
解决执行
createPeerAdminCard.sh时的No version of composer-cli has been detected错误 我来帮你排查这个问题,这种情况大概率是sudo执行脚本时的环境变量和普通用户不一致导致的——你用普通用户安装的composer-cli,root用户的PATH里找不到它。下面是几个可行的解决办法:
方法1:让sudo继承普通用户的环境变量
执行脚本时加上-E参数,保留当前用户的环境变量,这样就能找到你全局安装的composer-cli了:
sudo -E ./createPeerAdminCard.sh
方法2:直接指定composer-cli的完整路径
先在普通用户下找到composer-cli的安装路径:
which composer
会输出类似/home/你的用户名/.npm-global/bin/composer的路径。然后执行脚本时把这个路径加到root的PATH中:
sudo PATH=$PATH:/home/你的用户名/.npm-global/bin ./createPeerAdminCard.sh
记得把命令里的路径替换成你实际查到的结果。
方法3:以root身份重新安装composer-cli
如果上面两种方法都无效,可以切换到root环境重新安装一次,确保root用户能直接找到它:
sudo su npm install -g composer-cli@0.19.0 exit
之后再执行脚本就不会出现找不到版本的问题了。
额外检查点
- 先确认普通用户下执行
composer -v能正常输出版本号,确保composer-cli确实安装成功 - 可以打开
createPeerAdminCard.sh脚本,检查里面检测composer-cli的逻辑是否有硬编码的路径限制
内容的提问来源于stack exchange,提问作者AshT
相关产品推荐
相关产品推荐

