2011-08-16 67 views
5

我試圖設置nodejs來訪問postgres數據庫。我到目前爲止已經做的是以下(https://gist.github.com/579814):如何設置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 

然後

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

到目前爲止,一切都很好。然而,當我嘗試安裝的Postgres驅動

npm install pg 

我得到如下:

節點WAF配置構建||真正

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} 

我一直在四處尋找設置節點路徑,儘管還沒有發現什麼幫助到目前爲止 - 很可能也是因爲我完全陌生的NodeJS,所以我會很高興關於任何提示。

+2

在較新版本的node.js中,npm包含在節點中。你不需要'curl http://npmjs.org/install.sh | sh'。 –

回答

7

在bash這樣做: 呼應'export NODE_PATH=~/local/:~/local/node_modules' >> ~/.bashrc

+0

謝謝,這實際上有助於修復節點路徑,儘管找不到node_events.h的錯誤依然存在。 –

+0

看看/ home/christian/node_modules/pg/build是node_events.h的任何地方。並看看其他模塊。有它嗎? –

+0

無法在任何地方找到node_events.h,所以它似乎由於某種原因而丟失。在我看來,node_events.h已經從nodejs中刪除(https://github.com/joyent/node/commits/master/src/node_events.h),那麼有可能,pg-driver仍然需要它嗎? –

0

東西是固定的,你必須使用節點0.5.1之前(可以使用gitk樹恢復到這個版本)

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

我有同樣的問題。 問題是我在我的package.js中指定了一箇舊版本的PG 在我刪除舊版本依賴之後,我能夠安裝PG而沒有問題。

13

現在,你的Ubuntu已經安裝了NodeJS。您應該設置/etc/environment並加載其他用戶可以執行的nodeJS路徑。例如:

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

爲什麼免費託管廣告:O – Skeptor