Skip to content

如何为 frida node 选择正确的 Node.js 版本

codecolorist edited this page Nov 23, 2021 · 1 revision

有很多用户在安装 npm 包的时候会遇到类似如下的错误:

install: prebuild-install || node-gyp rebuild

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

这是因为 npm 无法找到适合当前 Node.js 版本的预编译包。本项目并没有依赖太多的二进制包,所以问题大概率与 frida-node 安装失败有关。当 npm 找不到预先编译好的二进制包,就会尝试下载源码在当前系统编译。因为缺少相关 frida 头文件,自然就失败了。

那么如何才能确定一个合适的版本?

如下是 frida 和 Node.js 的历史版本下载页:

  1. 首先在 frida 的 release 页面找到一个对应您系统的版本,例如 frida-v14.0.8-node-v83-linux-x64.tar.gz
  2. 注意其中的 node-v83,数字就是对应的 NODE_MODULE_VERSION。接下来在 Node.js 的 release 页面中找到匹配这个 API 版本的 Node。例如 Node.js 14.15.1 便对应 v83.
  3. 如果通过 brew 安装,默认会安装最高版本。有时候 frida 官方发布的安装包没有及时支持最新的解释器。可以尝试 brew install node@16 尝试安装旧版本的分支。