我正在研究gRPC Basics - PHP Tutorial。
我在执行以下步骤时遇到了麻烦:
$ cd ../../node
$ npm install
$ cd dynamic_codegen/route_guide
$ nodejs ./route_guide_server.js --db_path=route_guide_db.json
它会导致以下错误消息:
throw error;
^
Error: Failed to load gRPC binary module because it was not installed for the current system
Expected directory: node-v57-linux-x64-glibc
Found: [node-v64-linux-x64-glibc]
This problem can often be fixed by running "npm rebuild" on the current system
Original error: Cannot find module '/home/vantage/grpc/examples/node/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node'
at Object.<anonymous> (/home/vantage/grpc/examples/node/node_modules/grpc/src/grpc_extension.js:53:17)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/vantage/grpc/examples/node/node_modules/grpc/src/client_interceptors.js:144:12)
at Module._compile (module.js:652:30)
似乎nodejs正在寻找“ node-v57-linux-x64-glibc”,但正在寻找
'node-v64-linux-x64-glibc'。它找到的文件是gRPC示例随附的文件。 ./examples/node/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc
。因此,我认为问题出在我的节点安装上。我看过很多类似的帖子,并尝试了许多建议的答案,但都没有很好的结果。
例如:
npm rebuild
rm -rf node_modules
npm install
npm install --target=10.0.0 --target_platform=linux --target_arch=x64
我的操作系统是“ Ubuntu 18.04.1 LTS”。 我的计算机上的节点安装来自https://nodejs.org/en/download/(Linux Binaries(x64))。我按照https://github.com/nodejs/help/wiki/Installation上的说明进行安装。
我的节点版本是:v10.15.1
npm版本信息:
{ 'grpc-examples': '0.1.0',
npm: '6.4.1',
ares: '1.15.0',
cldr: '33.1',
http_parser: '2.8.0',
icu: '62.1',
modules: '64',
napi: '3',
nghttp2: '1.34.0',
node: '10.15.1',
openssl: '1.1.0j',
tz: '2018e',
unicode: '11.0',
uv: '1.23.2',
v8: '6.8.275.32-node.12',
zlib: '1.2.11' }
有什么解决方案?!
答案 0 :(得分:0)
错误消息中的不同版本号对应于您提供的版本信息中的“模块”版本。在这种特定情况下,该软件包是为节点10安装的,但错误消息表明您正在将其加载到节点8中。如果使用目标8.0.0
而不是10.0.0
进行安装,则应该可以使用