mongodb kerberos同伴依赖

use*_*718 27 kerberos mongoose mongodb node.js

尝试全局安装mongodb或mongoose会导致Kerberos缺少对等依赖项

Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb
/usr/local/lib
??? mongodb@2.0.48 
  ??? UNMET PEER DEPENDENCY kerberos@~0.0

npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer of kerberos@~0.0 but none was installed.
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb
- nan@2.0.9 node_modules/mongodb/node_modules/kerberos/node_modules/nan
- kerberos@0.0.17 node_modules/mongodb/node_modules/kerberos
/usr/local/lib
??? mongodb@2.0.48 
  ??? UNMET PEER DEPENDENCY kerberos@~0.0

npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer of kerberos@~0.0 but none was installed.
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongoose
/usr/local/lib
??? mongoose@4.2.5 
  ??? async@0.9.0 
  ??? bson@0.4.19 
  ??? hooks-fixed@1.1.0 
  ??? kareem@1.0.1 
  ??? mongodb@2.0.48 
  ? ??? es6-promise@2.1.1 
  ? ??? UNMET PEER DEPENDENCY kerberos@~0.0
  ? ??? mongodb-core@1.2.21 
  ? ??? readable-stream@1.0.31 
  ?   ??? core-util-is@1.0.1 
  ?   ??? inherits@2.0.1 
  ?   ??? isarray@0.0.1 
  ?   ??? string_decoder@0.10.31 
  ??? mpath@0.1.1 
  ??? mpromise@0.5.4 
  ??? mquery@1.6.3 
  ? ??? bluebird@2.9.26 
  ? ??? debug@2.2.0 
  ??? ms@0.7.1 
  ??? muri@1.0.0 
  ??? regexp-clone@0.0.1 
  ??? sliced@0.0.5 

npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer of kerberos@~0.0 but none was installed.
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?如果您手动安装,则必须在每次更新时执行此操作.

另外,我找不到报告错误的地方......

Sha*_*vil 28

我只需要npm install --save kerberos mongodb在我的项目中成功安装mongodb.我假设您也可以在全球范围内进行,但可能还有其他问题.

来自mongodb NPM包文档:

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

它继续提供以下步骤来诊断基于UNIX的操作系统上的问题:

如果你没有构建必需品,它将无法构建.对于linux,你将需要gcc和g ++,node.js以及所有头文件和python.找出缺失的最简单方法是尝试构建kerberos项目.您可以通过执行以下步骤来执行此操作.

git clone https://github.com/christkv/kerberos.git
cd kerberos
npm install
Run Code Online (Sandbox Code Playgroud)

如果完成所有步骤,则安装了正确的工具链.如果找不到node-gyp,则需要通过执行全局安装.

npm install -g node-gyp
Run Code Online (Sandbox Code Playgroud)

如果正确编译并运行测试,那么你就是金色的.我们现在可以通过执行以下命令尝试安装mongod驱动程序.

cd yourproject
npm install mongodb --save
Run Code Online (Sandbox Code Playgroud)

如果仍然失败,则下一步是检查npm日志.重新运行命令,但在这种情况下是详细模式.

npm --loglevel verbose install mongodb
Run Code Online (Sandbox Code Playgroud)

这将打印出在尝试安装模块时npm正在执行的所有步骤.

其他可能的问题:

你的python安装可能被软管打破gyp break.我总是建议您首先尝试在有问题的服务器上构建节点本身来测试您的部署环境,因为这样可以解决破坏软件包的任何问题(并且存在大量已损坏的软件包).

另一件事是确保您的用户具有对安装节点模块的任何位置的写权限.