mongodb kerberos同伴依赖

尝试全局安装mongodb或mongoose会导致Kerberos缺less对等依赖关系

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. 

有谁知道如何去解决这个问题? 如果你手动安装,那么你必须在每次更新时都这样做。

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

我只需要运行npm install --save kerberos mongodb mongodb在我的项目中成功安装mongodb。 我假设你也可以在全球范围内做到这一点,但也可能有其他问题。

从mongodb NPM软件包文档:

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

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

如果你没有构build要领,它不会build立。 在linux的情况下,你将需要gcc和g ++,node.js和所有的头文件和python。 找出缺失的最简单的方法是尝试构buildkerberos项目。 您可以通过执行以下步骤来完成此操作。

 git clone https://github.com/christkv/kerberos.git cd kerberos npm install 

如果所有的步骤完成,你有正确的工具链安装。 如果你没有findnode-gyp,你需要在全局安装。

 npm install -g node-gyp 

如果正确编译和运行testing,你是黄金。 我们现在可以尝试通过执行以下命令来安装mongod驱动程序。

 cd yourproject npm install mongodb --save 

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

 npm --loglevel verbose install mongodb 

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

其他可能的问题:

你的python安装可能会让gyp中断。 我总是build议你首先testing你的部署环境,试着在服务器上构build节点本身,因为这应该会发现破坏包的任何问题(并且有很多被破坏的包)。

另一件事是确保您的用户有权写入节点模块的安装位置。

 #!/bin/bash #My quasi bash script. This worked for Ubuntu v14.04 using Node.js v5.1.0 and mongodb v3.0.7 clear # prerequisites for building node.js from its source files sudo apt-get install clang-3.5 make gcc g++ libssl-dev libkrb5-dev # where you extracted the latest stable release. https://github.com/nodejs/node/releases cd ~/Downloads/node # git clone https://github.com/nodejs/node # this does NOT work because it gets a beta/pre release. ./configure # "-j 3" uses two processors for the compile on a duo core processor. 3 means 2 for some reason. make -j 3 sudo make install make doc make test # prerequisites for being able to use '$ npm install mongodb' cd ~ sudo npm install -g node-gyp sudo npm install -g kerberos # npm mongodb will NOT install globally '-g'. Therefore you have to install local to each project. #cd to/your/project/directory # make sure you are in your project directory root and that the "node_modules" directory is not 'root:root' npm install mongodb --save