【问题标题】:NPM install node-rdkafka fails with node-gyp rebuild errorNPM 安装 node-rdkafka 失败并出现 node-gyp 重建错误
【发布时间】:2020-09-30 14:41:54
【问题描述】:

我正在尝试使用 npm 安装 node-rdkafka 并看到以下错误

  • 操作系统:macOS Catalina 10.15.7
  • 节点版本:通过nvm 尝试了 10.16.3(8.x、12.x 和 13.x)
/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory
npm WARN kafka-log-parser@1.0.0 No repository field.

npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! node-rdkafka@2.7.0 install: `node-gyp rebuild`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the node-rdkafka@2.7.0 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!     /Users/VMac/.npm/_logs/2020-09-30T14_35_01_271Z-debug.log

当我尝试使用npm install -g node-gyp 运行安装node-gyp 并运行node-gyp rebuild 时,我看到以下错误

gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.0
gyp info using node@10.16.3 | darwin | x64
gyp info find Python using Python version 3.8.3 found at "/usr/local/anaconda3/bin/python3"
gyp info spawn /usr/local/anaconda3/bin/python3
gyp info spawn args [ '/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/VMac/Library/Caches/node-gyp/10.16.3/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/VMac/Library/Caches/node-gyp/10.16.3',
gyp info spawn args   '-Dnode_gyp_dir=/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/VMac/Library/Caches/node-gyp/10.16.3/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp: binding.gyp not found (cwd: /Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 19.6.0
gyp ERR! command "/Users/VMac/.nvm/versions/node/v10.16.3/bin/node" "/Users/VMac/.nvm/versions/node/v10.16.3/bin/node-gyp" "rebuild"
gyp ERR! cwd /Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v7.1.0
gyp ERR! not ok

我也试过xcode-select --install,但没有运气。 有关如何解决此问题并在我的 Mac 上使用 npm 成功安装 node-rdkafka 的任何建议?

【问题讨论】:

    标签: node.js macos npm apache-kafka


    【解决方案1】:

    在我自己遇到这个问题并尝试了两个答案中提出的解决方案后都没有成功,这对我有用,不需要卸载节点。

    TL:DR

    sudo rm -rf /Library/Developer/CommandLineTools
    xcode-select --install
    npm install node-rdkafka
    

    在此之后,我可以毫无问题地安装node-rdkafka

    按照here 的建议,我必须删除 CommandLineTools 并重新安装它,因为当我尝试运行 xcode-select --install 时,我会得到

    xcode-select: error: 命令行工具已安装,使用“软件更新”安装更新

    【讨论】:

      【解决方案2】:

      在网上尝试了各种选项后,我找不到合适的解决方案。所以,这就是我所做的和工作的

      1. 按照here的说明卸载node

        如果您使用的是Homebrew,请运行

        brew uninstall node 
        

        如果需要,请使用 --force--ignore-dependencies

      2. 运行node -v。如果您仍然看到版本信息,请按照说明进行操作 here

      3. 我还想从我的机器中删除nvm。所以,我删除了~/.nvm 文件夹。但是,我仍然看到 nvm 版本。要彻底清理,请删除 ~/.bashrc~/.zshrc 中的引用(如果有)

      我意识到我有两个版本的节点

      1. 手动安装
      2. 使用 Homebrew 安装

      发布这个,我只安装了nvm(不要安装node或npm)。

      brew install nvm
      

      然后使用安装所需版本的node和npm

      nvm install <NODE_VERSION> 
      

      这解决了我的node-gyp 错误

      【讨论】:

      • 是节点安装问题还是您更改了节点版本?
      【解决方案3】:

      这对我有用:

      “从https://developer.apple.com/download/more/ 为您的 Catalina 版本下载适当版本的“Xcode 命令行工具”。从 MacOS 10.15.5 开始,即为 Command_Line_Tools_for_Xcode_11.5.dmg”

      https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md#installing-node-gyp-using-the-xcode-command-line-tools-via-manual-download

      【讨论】:

        猜你喜欢
        • 2016-02-27
        • 2015-12-23
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 2019-04-21
        • 2022-07-25
        • 1970-01-01
        相关资源
        最近更新 更多