さくらVPSで、node0.5.3〜npmのinstallではまった

ローカルのnode.js環境をさくらVPSに移した。
いくつかはまる部分があったので備考録。

まずはnode.jsのソースをもってきてconfigure。


cd /usr/local/src/
wget http://nodejs.org/dist/v0.5.3/node-v0.5.3.tar.gz
tar xzvf node-v0.5.3.tar.gz
cd node-v0.5.3
./configure
落ちた・・。pythonがエラーってるっぽい。

/usr/local/src/node-v0.5.3/wscript: error: Traceback (most recent call last):
File "/usr/local/src/node-v0.5.3/tools/wafadmin/Utils.py", line 274, in load_module
exec(compile(code, file_path, 'exec'), module.__dict__)
File "/usr/local/src/node-v0.5.3/wscript", line 222
"-pre" if node_is_release == "0" else ""
^
SyntaxError: invalid syntax
ググってみると、英語のページでPythonが古いんだみたいな事を言われていた。
最新(2.7.2)をいれる。

wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar xzvf Python-2.7.2.tgz
cd Python-2.7.2
./configure
make
make install
Pythonはすんなり入った。

では、再度node.jsのインストール


./configure
configure通過。

make
次はmakeがこけた。

[ 5/36] libv8.a: deps/v8/SConstruct -> build/default/libv8.a
/usr/local/bin/python "/usr/local/src/node-v0.5.3/tools/scons/scons.py" -j 1 -C "/usr/local/src/node-v0.5.3/build/default/" -Y "/usr/local/src/node-v0.5.3/deps/v8" visibility=default mode=release arch=x64 toolchain=gcc library=static snapshot=on
scons: Reading SConscript files ...
ImportError: No module named bz2:
File "/usr/local/src/node-v0.5.3/deps/v8/SConstruct", line 37:
import js2c, utils
File "/usr/local/src/node-v0.5.3/deps/v8/tools/js2c.py", line 36:
import bz2
Waf: Leaving directory `/usr/local/src/node-v0.5.3/build'
Build failed: -> task failed (err #2):
{task: libv8.a SConstruct -> libv8.a}
make: *** [program] Error 1

bz2がない?またググってみるとbzip2-develが必要らしい。しかもそれはPythonインストール時に無いといけなかったららしい。。


yum install bzip2-devel
しかもこれはPythonのインストール時に必要だったらしい。
↑のPythonインストール(./configure〜make install)をもう一度。。

これで、nodeのmake、make installも通った。


'install' finished successfully (0.137s)

また、その後npmのinstallでもはまった。


npm install socket.io
下記のエラー出力。

npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1313209389660/1313209389660-0.5830379514954984/contents/___package.npm" tar: Ignoring unknown extended header keyword `LIBARCHIVE.creationtime'
npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1313209389660/1313209389660-0.5830379514954984/contents/___package.npm" tar: Ignoring unknown extended header keyword `SCHILY.dev'
npm ERR! tar "-mvxpf" "-" "-o" "-C" "/tmp/npm-1313209389660/1313209389660-0.5830379514954984/contents/___package.npm" tar: Ignoring unknown extended header keyword `SCHILY.ino'
これはtarが古いようだ。(ver 1.15)
tarをバージョンアップ。
この際、FORCE_UNSAFE_CONFIGURE(安全でないconfigureを強制。。)を1にしないとcofigureが通らなかった。

wget http://files1.directadmin.com/services/all/tar-1.26.tar.gz
tar xzvf tar-1.26.tar.gz
cd tar-1.26
./configure && make && make install
FORCE_UNSAFE_CONFIGURE=1
export FORCE_UNSAFE_CONFIGURE
./configure && make && make install

入った。
これでやっと、npm installも通る。


npm install socket.io
やっとうまくいった。長かった。。だいたいソースからのインストール系ってすんなりいった記憶が少ない

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