2015-11-11 2 views
27

がグローバルケルベロスのMongoDB KerberosはMongoDBのかマングースをインストールしようとすると、依存関係

Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb 
/usr/local/lib 
└─┬ [email protected] 
    └── UNMET PEER DEPENDENCY [email protected]~0.0 

npm WARN EPEERINVALID [email protected] requires a peer of [email protected]~0.0 but none was installed. 
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb 
- [email protected] node_modules/mongodb/node_modules/kerberos/node_modules/nan 
- [email protected] node_modules/mongodb/node_modules/kerberos 
/usr/local/lib 
└─┬ [email protected] 
    └── UNMET PEER DEPENDENCY [email protected]~0.0 

npm WARN EPEERINVALID [email protected] requires a peer of [email protected]~0.0 but none was installed. 
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongoose 
/usr/local/lib 
└─┬ [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ ├── [email protected] 
    │ ├── UNMET PEER DEPENDENCY [email protected]~0.0 
    │ ├── [email protected] 
    │ └─┬ [email protected] 
    │ ├── [email protected] 
    │ ├── [email protected] 
    │ ├── [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ ├── [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    └── [email protected] 

npm WARN EPEERINVALID [email protected] requires a peer of [email protected]~0.0 but none was installed. 

ために不足しているピアの依存関係になりピア誰もがそれを修正については行く方法を知っていますか?手動でインストールする場合は、毎回更新する必要があります。

また、私は

+0

グローバルにではなくローカルでインストールしてください。グローバルは、とにかくコマンドラインユーティリティのためだけに意味をなさない。 – JohnnyHK

+1

このエラーも発生しました.JIRA [ここ](https://jira.mongodb.org/browse/NODE/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues-japanese)で問題を開くことをお勧めします。パネル)はGithubを使って問題を追跡しているため、バグを報告することが難しくなります。代わりに、ギタールーム[ここ](https://gitter.im/mongodb/node-mongodb-native)に行ってください。 nodejsドライバの作者は彼らの質問に答えます。 –

+2

警告を無視してみましたか?少なくとも私のコードはkerberosモジュールをインストールするという明らかな面倒を経ることなく、これまでのところうまく動作しているようです。私の推測では、あなたのユースケースに応じて必要ではないかもしれない認証にKerberosのものが使われるだけです。 – mthierer

答えて

28

私はちょうど首尾よく私のプロジェクトでのMongoDBをインストールするnpm install --save kerberos mongodbを実行する必要がありました...バグを報告する場所を見つけることができません。私はあなたもそれをグローバルに行うことができると考えていますが、他にも問題があるかもしれません。

mongodb NPM packageドキュメントから:

のKerberosパッケージがシステムにインストールされるビルド 環境を必要とC++の拡張機能です。 kerberosモジュールをコンパイルしてインストールするには、 node.jsを構築する必要があります。 kerberosモジュールでは、UNIXオペレーティングシステムで正しくコンパイルするには へのMIT Kerberosパッケージが必要です。 UNIX オペレーティングシステムパッケージマネージャーに、インストールするライブラリを問い合わせてください。

これは、UNIXベースのオペレーティング・システム上の問題を診断するための次のステップを提供するために行く:あなたは、ビルドの必需品を持っていない場合、それはビルドしません

。 linuxの場合は、gccとg ++、node.jsにすべてのヘッダとPythonが必要です。行方不明を突き止める最も簡単な方法は、ケルベロスプロジェクトを構築することです。これを行うには、以下の手順を実行します。

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

すべての手順が完了したら、適切なツールチェーンがインストールされていることを確認します。あなたがnode-gypを見つけられない場合、あなたはそれをグローバルにインストールする必要があります。

npm install -g node-gyp 

テストを正しくコンパイルして実行すると、あなたは金色になります。次のコマンドを実行して、mongodドライバをインストールすることができます。

cd yourproject 
npm install mongodb --save 

まだ失敗した場合は、次の手順でnpmログを調べます。この場合は冗長モードでコマンドを再実行してください。

npm --loglevel verbose install mongodb 

モジュールのインストール中にnpmが実行しているすべての手順が表示されます。

他の可能性のある問題:

PythonインストールにはGYPの休憩を作るまずいかもしれません。問題のサーバーでノード自体を構築しようとすると、最初にデプロイメント環境をテストすることをお勧めします。これは、破損したパッケージの問題を発見する必要があります。

もう1つのことは、ノードモジュールがインストールされているどこにでも書き込み権限があることです。

+0

私にも働きました。ありがとう! – Cyph

+0

公式ドライバーのインストール情報はこちらhttps://github.com/mongodb/node-mongodb-native#troubleshooting –

+0

解決策は驚くほど見つけにくいです!私は昨晩以来、 "mongodb-coreにはkerberosのピアが必要"というエラーにつきました。 – Ash

0
#!/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 
+1

回答の可読性を向上できますか? – iamktothed

+0

私はそれが好きでした。なぜなら、それはbashファイルで必要とされるコメントで説明されたbashスクリプトです。簡単にコピー・ペーストすることができます。私がそれを変更すると、読みやすく、使いやすいものではありません。 – Rick

関連する問題