CentOSにnodeとnpmを入れる

nodeを入れておきたいのでインストールしてみよう。

wget http://nodejs.org/dist/node-v0.4.12.tar.gz
gzip -d node-v0.4.12.tar.gz
tar xvf node-v0.4.12.tar
mkdir ~/local
cd node-v0.4.12
 ./configure --without-ssl --prefix=$HOME/local/node
make
make install

SSLは使わないのでconfigureオプションに--without-sslを指定した。
makeの実行には時間がかかるのですこし待つ。
インストールが終わったらパスを通そう。
CentOSでは.bash_profileにパスを書いておくらしいので、

cd $HOME/
emacs .bash_profile

としてファイルを開き、
ファイルに以下を追記する。

export PATH=$HOME/local/node/bin:$PATH
export NODE_PATH=$HOME/local/node:$HOME/node_modules

ファイル変更を有効にするために、

source .bash_profile

とする。
パスが通ったか確認してみる。

which node
/root/local/node/bin/node

大丈夫みたいだ。
次にnpmを入れる。

curl http://npmjs.org/install.sh | sh

入ったみたいなので、
expressモジュールを入れようと

npm install express

と入力したら、

node.js not compiled with openssl crypto support

とのこと。
もしかして必須なのか。。。
configureオプションにsslなしってしたのに。
node単体ではなくても問題ないけど、
npmを使うときにはいるってことかな。
それじゃ入れよう。

yum install openssl-devel

としてもう一度makeからやり直した。

npm install express

としたらちゃんとインストールされた!
続いて、socket ioを入れてみる。

npm install socket.io

としたらすごい数のエラーが出た!!
さくらVPSのCentOSでnode.jsのsocket.ioをインストールしようしてエラー - piglovesyouの日記
tarが古いかららしい。
新しいの入れよう。
上記ページを参考に、

wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz 
tar xzvf tar-1.26.tar.gz
cd tar-1.26
./configure

ここまでやったらまたエラーですね。はい。

configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

node.jsでWebSocket通信 - oggataの日記
configure時にオプションをつければいいらしい。

./configure FORCE_UNSAFE_CONFIGURE=1

configureが問題なくできたらmake、make installで完了。
一度コンソールから抜けて、

tar --version

でバージョンが上がってることを確認する。
再度、

npm install socket.io

socket.io@0.8.4 ./node_modules/socket.io 
├── policyfile@0.0.4
├── redis@0.6.6
└── socket.io-client@0.8.4

無事にsocket.ioモジュールが入ったよ!