web-dev-qa-db-fra.com

dépendance des homologues mongodb kerberos

Tenter d'installer mongodb ou mangouste de manière globale entraîne une dépendance des pairs manquante pour 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.

Est-ce que quelqu'un sait comment s'y prendre pour résoudre ce problème? Si vous installez manuellement, vous devez le faire à chaque mise à jour.

De plus, je ne trouve pas d'endroit pour signaler le bogue ...

27
user1775718

Il me suffisait d'exécuter npm install --save kerberos mongodb pour installer correctement mongodb dans mon projet. Je suppose que vous pouvez le faire également à l'échelle mondiale, mais il peut y avoir d'autres problèmes.

Depuis le package mongodb NPM docs: 

Le paquet kerberos est une extension C++ qui nécessite une compilation environnement à installer sur votre système. Vous devez être capable de construire node.js lui-même pour pouvoir compiler et installer le module kerberos . De plus, le module Kerberos nécessite le package MIT Kerberos sur compiler correctement sur les systèmes d'exploitation UNIX. Consultez votre UNIX Gestionnaire de paquets du système d’exploitation quelles bibliothèques installer.

Il propose ensuite les étapes suivantes pour diagnostiquer le problème sur les systèmes d'exploitation UNIX:

Si vous n’avez pas l’essentiel de la construction, il ne sera pas construit. Dans le cas de linux, vous aurez besoin de gcc et de g ++, de node.js avec tous les en-têtes et de python. Le moyen le plus simple de comprendre ce qui manque est d’essayer de construire le projet Kerberos. Vous pouvez le faire en procédant comme suit.

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

Si toutes les étapes sont terminées, la bonne chaîne d’outils est installée. Si vous obtenez node-gyp non trouvé, vous devez l'installer globalement.

npm install -g node-gyp

Si correctement compile et exécute les tests, vous êtes en or. Nous pouvons maintenant essayer d'installer le pilote Mongod en exécutant la commande suivante.

cd yourproject
npm install mongodb --save

Si cela échoue toujours, l'étape suivante consiste à examiner le journal npm. Relancez la commande mais dans ce cas en mode prolixe.

npm --loglevel verbose install mongodb

Ceci affichera toutes les étapes effectuées par npm lors de la tentative d'installation du module.

Autres problèmes possibles:

Votre installation en python peut être endommagée. Je vous recommande toujours de tester d'abord votre environnement de déploiement en essayant de créer le noeud lui-même sur le serveur en question, car cela devrait révéler tout problème avec les paquets cassés (et il en existe beaucoup).

Une autre chose à faire est de vous assurer que votre utilisateur a le droit d'écrire, quel que soit le lieu d'installation des modules de nœud.

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