Ubuntu 16.04环境下npm install grpc安装失败求助
解决Ubuntu 16.04下npm安装grpc@1.11.3失败的问题
从你提供的错误日志来看,核心问题出在node-pre-gyp工具的回调未触发,导致安装脚本执行失败。结合Ubuntu 16.04的环境和你已经安装了libgrpc-dev、libgrpc0的前提,我整理了以下几个针对性的解决方案:
错误日志回顾
vagrant@fabric:~/hyperledger/fabric-samples/fabcar$ npm install grpc > grpc@1.11.3 install /home/vagrant/hyperledger/fabric-samples/fabcar/node_modules/grpc > node-pre-gyp install --fallback-to-build --library=static_library node-pre-gyp ERR! Completion callback never invoked! node-pre-gyp ERR! System Linux 4.4.0-121-generic node-pre-gyp ERR! command "/usr/local/bin/node" "/home/vagrant/hyperledger/fabric-samples/fabcar/node_modules/grpc/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--library=static_library" node-pre-gyp ERR! cwd /home/vagrant/hyperledger/fabric-samples/fabcar/node_modules/grpc node-pre-gyp ERR! node -v v8.9.1 node-pre-gyp ERR! node-pre-gyp -v v0.10.0 node-pre-gyp ERR! This is a bug in `node-pre-gyp`. node-pre-gyp ERR! Try to update node-pre-gyp and file an issue if it does not help: node-pre-gyp ERR! <https://github.com/mapbox/node-pre-gyp/issues> npm WARN fabcar@1.0.0 No repository field. npm ERR! code ELIFECYCLE npm ERR! errno 6 npm ERR! grpc@1.11.3 install: `node-pre-gyp install --fallback-to-build --library=static_library` npm ERR! Exit status 6 npm ERR! npm ERR! Failed at the grpc@1.11.3 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/vagrant/.npm/_logs/2018-05-10T09_58_11_489Z-debug.log
解决方案步骤
1. 升级node-pre-gyp工具
错误日志明确提示这是node-pre-gyp的bug,且你当前使用的node-pre-gyp版本是v0.10.0,非常老旧。先全局升级该工具:
npm install -g node-pre-gyp
之后回到项目目录,重新尝试安装grpc:
npm install grpc
2. 升级npm版本
你当前的node版本是v8.9.1,搭配的npm版本可能过低,导致兼容性问题。执行以下命令升级npm:
npm install -g npm@latest
3. 清理缓存并重新安装
npm缓存损坏也可能导致这类安装失败,先清理缓存,再删除现有依赖文件重新安装:
# 清理npm缓存 npm cache clean --force # 删除项目下的node_modules和package-lock.json rm -rf node_modules package-lock.json # 重新安装所有依赖(包括grpc) npm install
4. 安装编译依赖(关键)
当node-pre-gyp fallback到本地编译时,需要系统具备完整的编译环境。Ubuntu 16.04下执行以下命令安装必要工具:
sudo apt-get update && sudo apt-get install -y build-essential python
注意:Ubuntu 16.04默认的Python版本是2.7,这符合grpc编译的要求;如果你的系统默认是Python3,需要手动切换到Python2.7(可以通过update-alternatives配置)。
5. 指定兼容的grpc版本
grpc@1.11.3是比较旧的版本,可能和你的node v8.9.1存在兼容性问题。尝试安装一个更稳定、兼容的版本,比如1.24.x系列:
npm install grpc@1.24.0
额外提示
如果是在Hyperledger Fabric的fabcar示例中遇到这个问题,建议确保你的Fabric版本和Node.js版本匹配,Fabric官方文档有明确的版本兼容说明,可以参考对应版本的文档调整环境。
内容的提问来源于stack exchange,提问作者santhosh
相关产品推荐
相关产品推荐

