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.
誰でもそれを修正する方法を知っていますか?手動でインストールする場合は、更新のたびにそれを行う必要があります。
また、バグを報告する場所が見つかりません...
ただ実行する必要がありました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つのことは、ユーザーがノードモジュールをインストールする場所への書き込み許可を確実に持つことです。
#!/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