无法加载gRPC二进制模块(gRPC php教程)

时间:2019-02-25 19:01:11

标签: php node.js linux grpc

我正在研究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' }

有什么解决方案?!

1 个答案:

答案 0 :(得分:0)

错误消息中的不同版本号对应于您提供的版本信息中的“模块”版本。在这种特定情况下,该软件包是为节点10安装的,但错误消息表明您正在将其加载到节点8中。如果使用目标8.0.0而不是10.0.0进行安装,则应该可以使用