Подтвердить что ты не робот

Mangodb kerberos равная зависимость

Попытка установить mongodb или mongoose глобально приводит к отсутствию равноправной зависимости для Kerberos

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.

Кто-нибудь знает, как это сделать? Если вы вручную установите, вы должны сделать это при каждом обновлении.

Кроме того, я не могу найти место для сообщения об ошибке...

4b9b3361

Ответ 1

Мне просто нужно было запустить npm install --save kerberos mongodb, чтобы успешно установить mongodb в моем проекте. Я предполагаю, что вы можете сделать это и на глобальном уровне, но могут быть и другие проблемы.

Из пакета mongodb NPM docs:

Пакет kerberos - это расширение С++, которое требует сборки которая будет установлена ​​в вашей системе. Вы должны уметь строить node.js, чтобы иметь возможность компилировать и устанавливать модуль kerberos. Кроме того, модуль kerberos требует, чтобы пакет MIT Kerberos правильно компилировать в операционных системах UNIX. Проконсультируйтесь с UNIX менеджер системных пакетов, какие библиотеки устанавливать.

Далее предлагаются следующие шаги для диагностики проблемы в операционных системах на базе UNIX:

Если у вас нет оснований сборки, он не будет построен. В случае с Linux вам понадобятся gcc и g++, node.js со всеми заголовками и python. Самый простой способ выяснить, чего не хватает, - это попытаться построить проект 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 break. Я всегда рекомендую вам сначала протестировать среду развертывания, пытаясь самостоятельно построить node на рассматриваемом сервере, поскольку это должно выявить любые проблемы с разбитыми пакетами (и там есть много разбитых пакетов).

Другое дело, чтобы ваш пользователь имел разрешение на запись везде, где устанавливаются модули node.

Ответ 2

#!/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