【问题标题】:Exclude kerberos dependency from mongodb in node从节点中的 mongodb 中排除 kerberos 依赖项
【发布时间】:2016-02-20 10:59:55
【问题描述】:

我有一个依赖 mongodb 的节点应用程序。据我所知,mongodb 依赖于 kerberos 的东西,但据我所知,我不需要它。这会导致问题,因为当我尝试将我的应用程序部署到 aws beanstalk 时,由于系统依赖性,它会在整个地方阻塞和呕吐。是否可以在我的package.json 中排除这种依赖关系?

> kerberos@0.0.17 install /tmp/deployment/application/node_modules/mongodb/node_modules/kerberos
  > (node-gyp rebuild) || (exit 0)

  make: Entering directory `/tmp/deployment/application/node_modules/mongodb/node_modules/kerberos/build'
    CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  In file included from ../lib/kerberos.cc:1:0:
  ../lib/kerberos.h:5:27: fatal error: gssapi/gssapi.h: No such file or directory
   #include <gssapi/gssapi.h>
                             ^
  compilation terminated.
  make: *** [Release/obj.target/kerberos/lib/kerberos.o] Error 1
  make: Leaving directory `/tmp/deployment/application/node_modules/mongodb/node_modules/kerberos/build'
  gyp ERR! build error 
  gyp ERR! stack Error: `make` failed with exit code: 2
  gyp ERR! stack     at ChildProcess.onExit (/opt/elasticbeanstalk/node-install/node-v4.2.1-linux-x64/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
  gyp ERR! stack     at emitTwo (events.js:87:13)
  gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
  gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
  gyp ERR! System Linux 4.1.10-17.31.amzn1.x86_64
  gyp ERR! command "/opt/elasticbeanstalk/node-install/node-v4.2.1-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.2.1-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
  gyp ERR! cwd /tmp/deployment/application/node_modules/mongodb/node_modules/kerberos
  gyp ERR! node -v v4.2.1
  gyp ERR! node-gyp -v v3.0.3
  gyp ERR! not ok 

【问题讨论】:

    标签: node.js mongodb amazon-web-services npm kerberos


    【解决方案1】:

    如你所见here

    kerberos 包是一个 C++ 扩展,需要在您的系统上安装构建环境。 您必须能够构建 node.js 本身才能编译和安装 kerberos 模块。此外,kerberos 模块需要 MIT Kerberos 包才能在 UNIX 操作系统上正确编译。请咨询您的 UNIX 操作系统包管理器要安装哪些库。

    一种可能的解决方案是在服务器上安装软件包 libkrb5-dev (Debian/Ubuntu) 或 krb5-devel (CentOS)。

    【讨论】:

      【解决方案2】:

      这也可能是节点版本的问题。我对 kerberos 也有同样的问题。请注意,EB 默认使用节点 4.x。进入软件配置页面,更改环境。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-12
        • 2018-10-18
        • 2015-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多