2011-08-16 12 views
5

Estoy intentando configurar nodejs para acceder a una base de datos postgres. Lo que he hecho hasta ahora es la siguiente (https://gist.github.com/579814):Cómo establecer la ruta del nodo para nodejs (Ubuntu)

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc 
. ~/.bashrc 
mkdir ~/local 
mkdir ~/node-latest-install 
cd ~/node-latest-install 
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1 
./configure --prefix=~/local 
make install # ok, fine, this step probably takes more than 30 seconds... 
curl http://npmjs.org/install.sh | sh 

continuación

git clone git://github.com/isaacs/npm.git 
make 
make install 

hasta ahora, todo bien. Sin embargo, cuando intento instalar el controlador postgres

npm install pg 

me sale el siguiente:

nodo-WAF acumulación de configuración || true

Checking for program g++ or c++   : /usr/bin/g++ 
Checking for program cpp     : /usr/bin/cpp 
Checking for program ar     : /usr/bin/ar 
Checking for program ranlib    : /usr/bin/ranlib 
Checking for g++       : ok 
Checking for node path     : not found 
Checking for node prefix     : ok /usr/local 
Checking for program pg_config   : /usr/bin/pg_config 
'configure' finished successfully (0.066s) 
Waf: Entering directory `/home/christian/node_modules/pg/build' 
[1/2] cxx: src/binding.cc -> build/default/src/binding_1.o 
../src/binding.cc:3:25: fatal error: node_events.h: No such file or directory 
compilation terminated. 
Waf: Leaving directory `/home/christian/node_modules/pg/build' 
Build failed: -> task failed (err #1): 
    {task: cxx binding.cc -> binding_1.o} 

I've been around para setting buscando el path node, although no han encontrado anything ayuda tan far - probably también because I'm totally nuevo a nodejs, por lo que'd ser happy sobre cualquier pista.

+2

En las versiones más recientes de node.js, npm se incluye con el nodo. No debería necesitar hacer 'curl http://npmjs.org/install.sh | sh'. –

Respuesta

7

hacer esto en bash: eco 'export NODE_PATH=~/local/:~/local/node_modules' >> ~/.bashrc

+0

gracias, que en realidad ayudó a reparar la ruta del nodo, aunque el error de no encontrar node_events.h todavía permanecía. –

+0

mira en/home/christian/node_modules/pg/build es node_events.h en cualquier lugar. Y mira otros módulos. ¿Lo tiene? –

+0

no pudo ubicar node_events.h en ninguna parte, por lo que parece que falta por alguna razón. Me parece que node_events.h se eliminó de nodejs (https://github.com/joyent/node/commits/master/src/node_events.h), entonces, ¿es posible que el controlador pg todavía lo requiera? –

0

antes que las cosas se fijan debe utilizar nodo 0.5.1 (se puede utilizar gitk para revertir el árbol para esta versión)

Auteur: Ryan Dahl <[email protected]> 2011-07-19 10:46:38 
Auteur du commit: Ryan Dahl <[email protected]> 2011-07-19 10:46:38 
Parent: 0a3fc1d9c8becc32c63ae736ca2b3719a3d03c5b (Remove StatWatcher's dep on C++ EventEmitter) 
Enfant: 061ce7b0ac370c8a5ae93d95ab7da171cbd488f0 (net_uv: Fix simple/test-http-expect-continue.js) 
Branche: master, remotes/origin/master 
Suit: v0.5.1 
Précède: v0.5.2 
Finally remove node::EventEmitter 
0

tuve la el mismo problema. El problema era que estaba especificando una versión anterior de PG en mi paquete.js Después de eliminar la dependencia de la versión anterior, pude instalar PG sin problemas.

13

Ahora tiene instalado NodeJS en su Ubuntu. Debe establecer /etc/environment y cargar la ruta nodeJS que pueden ejecutar otros usuarios. Por ejemplo:

NODE="/home/ubuntu/local/node" 
NODE_PATH="/usr/local/lib/node_modules" 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules" 
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 
+1

¿Por qué ese anuncio de alojamiento gratuito allí: O – Skeptor

Cuestiones relacionadas