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.
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.
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í.
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
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
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.
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