web-dev-qa-db-ja.com

mongodb Kerberosピアの依存関係

Mongodbまたはmongooseをグローバルにインストールしようとすると、Kerberosのピア依存関係が失われます

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

npm WARN EPEERINVALID [email protected] requires a peer of kerberos@~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 kerberos@~0.0

npm WARN EPEERINVALID [email protected] requires a peer of kerberos@~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 kerberos@~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 kerberos@~0.0 but none was installed.

誰でもそれを修正する方法を知っていますか?手動でインストールする場合は、更新のたびにそれを行う必要があります。

また、バグを報告する場所が見つかりません...

27
user1775718

ただ実行する必要がありましたnpm install --save kerberos mongodbプロジェクトにmongodbを正常にインストールします。あなたもグローバルにそれができると思いますが、他の問題があるかもしれません。

mongodb NPMパッケージ ドキュメントから:

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

さらに、UNIXベースのオペレーティングシステムで問題を診断するために、次の手順を提供します。

ビルドに必要なものがなければ、ビルドされません。 Linuxの場合、gccとg ++、すべてのヘッダーとpythonを含むnode.jsが必要になります。不足しているものを把握する最も簡単な方法は、Kerberosプロジェクトをビルドすることです。これを行うには、次の手順を実行します。

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つのことは、ユーザーがノードモジュールをインストールする場所への書き込み許可を確実に持つことです。

28
Shaun Scovil
#!/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
0
Rick