falla la instalación de mangosta de npm (errores de kerberos y bson)


Así que estoy intentando lanzar mi aplicación node, pero hay algunos errores que surgen de mi instalación de MongoDB.

Aquí están las especificaciones para mi entorno de desarrollo:

Node = > 0.10.33 (instalado desde nodejs.org)

Npm => 1.4.28 (instalado desde nodejs.org)

Git = > 2.1.3 (homebrewed)

Mongodb = > 2.6.5 (homebrewed)

Si hace una diferencia, también estoy usando la media Stack Skeleton como parte de un tutorial.

En pocas palabras, cuando intento ejecutar mi aplicación de nodo usando $ node app.js, obtengo los siguientes comentarios:

USER$ npm install mongoose

> [email protected] install /Users/USER/APP/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
  SOLINK_MODULE(target) Release/kerberos.node: Finished

> [email protected] install /Users/USER/APP/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bson/ext/bson.o
  SOLINK_MODULE(target) Release/bson.node
  SOLINK_MODULE(target) Release/bson.node: Finished
[email protected] node_modules/mongoose
├── [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])

Revisé los archivos builderror.log para los módulos kerberos y bson. Sin embargo, ambos están vacíos.

Algunas investigaciones que he encontrado sugieren que el problema podría deberse a que mi instalación node-gyp no tiene un archivo binding.gyp correspondiente.

También intenté ejecutar $ node-gyp configure dentro de mi nodo.carpeta del proyecto js. Y este es el error I recibido:

gyp: binding.gyp not found (cwd: /Users/USER/APP) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:343:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Darwin 12.5.0
gyp ERR! command "node" "/usr/local/bin/node-gyp" "configure"
gyp ERR! cwd /Users/USER/APP
gyp ERR! node -v v0.10.33
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok

¿Alguna idea de por qué estoy teniendo estos problemas?

EDITAR: Después de configurar el puerto en mi archivo app.js para establecer el puerto en el mismo que el servidor Express está escuchando (duh), recibo más comentarios que indican que estaba usando Mongoose 3.9.4, que es la última versión inestable de mongoose. Así que puse el módulo a 3.8.18 en mi package.json e intenté reinstalar el módulo. Recibí los mismos errores. Sin embargo, la retroalimentación de la versión inestable se ha ido ahora.

Author: Caleb Faruki, 2014-11-06

5 answers

Para cualquier persona en una distribución de Linux, asegúrese de tener libkrb5-dev (o el paquete similar de su distribución) instalado. Esto se encargará de muchos errores de compilación con bson y kerberos.

 54
Author: TWright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-15 04:52:35

Para los usuarios de ubuntu, primero desinstale moongose

npm uninstall mongoose --save

Luego instale la actualización de kerberos

apt-get install libkrb5-dev

Luego "instalar" moongose de nuevo

npm install mongoose --save

Espero que esto ayude a alguien allí.

 18
Author: jack.the.ripper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-12 21:06:00

He arreglado esto instalando node-gyp en el ámbito global. Espero que ayude.

$ npm install -g node-gyp 
 13
Author: Wreeecks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-04 08:22:34

Acabo de desinstalar mongodb y luego instalar mongoose con éxito.

npm uninstall mongodb --save
npm install mongoose --save
 4
Author: dinglufe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-28 08:18:57

Después de I cd'd en los directorios kerberos y bson, utilicé el comando $ node-gyp rebuild y los módulos de nodo compilados correctamente.

Mi archivo app.js, llamé a las siguientes líneas:

var app = express();
...
var Mongoose = require('mongoose');
var db = Mongoose.createConnection('localhost','database');

// all environments
app.set('port', process.env.PORT || 3000);

Este número de puerto debe ser único desde el puerto de su instancia de base de datos.

En una ventana de terminal separada, ejecute $ mongod para cargar su MongoDB. Una vez que se llama, en otra ventana de terminal, se llama $ mongo database. Esto crea la instancia de base de datos llamada database para su nodo.js app to conéctate. En la ventana de su terminal original, llame a $ node app.js y se ejecutará sin comentarios de error.

Los errores que estaba obteniendo no eran el resultado de una compilación incorrecta de Mongoose, MongoDB o cualquiera de sus dependencias. Los errores fueron el resultado de una idea errónea sobre MongoDB. MongoDB debe estar ejecutándose como un proceso separado del nodo.aplicación js para que la aplicación haga una conexión a la base de datos.

 0
Author: Caleb Faruki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-06 16:25:35