2011-08-16 7 views
5

Sto provando a configurare nodejs per accedere a un database postgres. Quello che ho fatto finora è il seguente (https://gist.github.com/579814):Come impostare il percorso del nodo per 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 

poi

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

così qui, tutto bene. Tuttavia, quando provo ad installare il driver Postgres

npm install pg 

ottengo il seguente:

nodo-waw accumulo configure || vero

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} 

Ho cercato in giro per impostare il percorso del nodo, anche se non ho trovato nulla di aiuto finora - probabilmente anche perché io sono totalmente nuovo per nodejs, quindi sarei felice su ogni suggerimento.

+2

Nelle versioni più recenti di node.js, npm è incluso nel nodo. Non dovresti aver bisogno di fare 'curl http://npmjs.org/install.sh | sh'. –

risposta

7

farlo in bash: eco 'export NODE_PATH=~/local/:~/local/node_modules' >> ~/.bashrc

+0

grazie, che in realtà ha aiutato a risolvere il percorso del nodo, anche se l'errore di non trovare il node_events.h rimaneva ancora. –

+0

guarda/home/christian/node_modules/pg/build è node_events.h ovunque. E guarda altri moduli. Ce l'ha? –

+0

non è riuscito a localizzare node_events.h da nessuna parte, quindi sembra che manchi per qualche motivo. Mi sembra che node_events.h sia stato rimosso da nodejs (https://github.com/joyent/node/commits/master/src/node_events.h), quindi è possibile che il driver pg lo richieda? –

0

prima che le cose sono fissati è necessario utilizzare il nodo 0.5.1 (è possibile utilizzare gitk per ripristinare l'albero per questa versione)

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

ho avuto la stesso problema. Il problema era che stavo specificando una vecchia versione di PG nel mio package.js Dopo aver rimosso la vecchia versione di dipendenza, ero in grado di installare PG senza problemi.

13

Ora hai NodeJS installato in Ubuntu. È necessario impostare /etc/environment e caricare il percorso nodeJS che può essere eseguito da altri utenti. Ad esempio:

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

Perché questo annuncio di hosting gratuito lì: O – Skeptor

Problemi correlati