2011-08-16 34 views
5

Tôi đang cố gắng thiết lập nodejs để truy cập cơ sở dữ liệu postgres. Những gì tôi đã làm cho đến nay là những điều sau đây (https://gist.github.com/579814):Làm thế nào để thiết lập đường dẫn nút cho 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 

sau đó

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

cho đến nay, như vậy tốt. Tuy nhiên, khi tôi cố gắng để cài đặt các trình điều khiển postgres

npm install pg 

tôi nhận được như sau:

nút-waf cấu hình xây dựng || đúng

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} 

Tôi đã nhìn xung quanh để thiết lập con đường nút, mặc dù đã không tìm thấy bất cứ điều gì giúp đỡ cho đến nay - có lẽ cũng bởi vì tôi là hoàn toàn mới để nodejs, vì vậy tôi muốn được hạnh phúc về bất kỳ gợi ý nào.

+2

Trong phiên bản mới hơn của node.js, npm được bao gồm trong nút. Bạn không cần phải làm 'curl http://npmjs.org/install.sh | sh'. –

Trả lời

7

Làm điều này trong bash: vang 'export NODE_PATH=~/local/:~/local/node_modules' >> ~/.bashrc

+0

cảm ơn, thực sự đã giúp sửa chữa đường dẫn nút, mặc dù lỗi không tìm thấy node_events.h vẫn còn. –

+0

xem/home/christian/node_modules/pg/build là node_events.h ở mọi nơi. Và nhìn vào các mô-đun khác. Liệu có nó? –

+0

không thể xác định vị trí node_events.h ở bất kỳ đâu, do đó có vẻ như bị thiếu vì một số lý do. Dường như với tôi rằng node_events.h đã được gỡ bỏ từ nodejs (https://github.com/joyent/node/commits/master/src/node_events.h), do đó, nó có thể, rằng pg-driver vẫn yêu cầu nó? –

0

trước khi mọi thứ được cố định bạn phải sử dụng nút 0.5.1 (bạn có thể sử dụng gitk để phục hồi các cây để phiên bản này)

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

tôi đã có cùng một vấn đề. Vấn đề là tôi đang chỉ định phiên bản cũ của PG trong package.js Sau khi tôi xóa phụ thuộc phiên bản cũ, tôi đã có thể cài đặt PG mà không gặp vấn đề gì.

13

Bây giờ, bạn đã cài đặt NodeJS trong Ubuntu của mình. Bạn nên đặt /etc/environment và tải đường dẫn nodeJS có thể được thực thi bởi người dùng khác. Ví dụ:

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

Tại sao quảng cáo lưu trữ miễn phí ở đó: O – Skeptor

Các vấn đề liên quan