Ответ 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.