ぱいぱいにっき

Pythonが好きすぎるけれど、今からPerlを好きになりますにっき

hubotを使うためにNode.jsをCentOS5に突っ込んだ

#15 「人体錬成に近いものの仕方、もしくはhubotの使い方」tech.kayac.com Advent Calendar 2012 | tech.kayac.com - KAYAC engineers' blog
っていうのを去年の暮に某面白法人のブログに書かせていただいたのですが、そういえばこいつのこと忘れてはなかったんですけれどまだお仕事の方に投入してなくて、ああつらまるーって思ってたら
「kokorochanまだ?」
ってディレクターの人に言われたので作業してます。

んで、僕のプロジェクトのサーバはCentOS5で、開発サーバと本番サーバ群はchefで管理されているんですけれど、僕chef全然わからないし、hubotぐらいなら開発サーバ死んでもまあ手動で復活するか−って感じだったので、Node.jsを作業ユーザのホームディレクトリの中に突っ込んでそこから起動させるかー、って感じで入れようとしました。

僕の最近のモストフェイバリットプロダクトはnodebrewなのでこれで入れようと思います。

hokaccha/nodebrew · GitHub

$ curl https://raw.github.com/hokaccha/nodebrew/master/nodebrew | perl - setup
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
$ source ~/.bashrc

はい簡単ですね。
んで

$ nodebrew binary-install v0.8.18

ってやって入れようと思ったんですけれど、入るには入るけれどGLibcがうんたらかんたら怒られてくそーってなったんで

$ nodebrew uninstall v0.8.18

ってしました。
binary-install、Macでしか成功したこと無いなー。もちろん条件あるんでしょうけれど
じゃあビルドするかー、ってなって「こんな夜中ならみんな開発サーバ重くなっても大丈夫だよなっ」てIRCにつぶやいたら誰も反応がなかったから

$ nodebrew install v0.8.18

ってしましたら。そしたらなんかすぐコケるんですね。お前ビルドすらしてねえだろって思うぐらいに。んで調べたら
./configure fails on Python 2.4 · Issue #2609 · joyent/node · GitHub
うけるーー。
そうなんですね、CentOS5はpython2.4なんですよ。これ前もあって、その時はちっちゃいスクリプトが動かねーってだけだったので三項演算子取り除いたりして2.4対応したんですけれど、今回ばかりはちょっといじりたくないねってなって。
じゃあPython入れるかって。
で、僕の手元のMacとかはPythonをpythonbrewとかで導入してるんですけれど、pythonbrewもう無いしさてどうしましたかねってなったんですけれど


というお言葉をいただきましてじゃあ自分でやるかーってなって、

$ wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
$ tar zxvf Python-2.7.3.tgz
$ cd Python-2.7.3
$ ./configure --prefix=/home/taniwaki-makoto/usr
$ make test
$ make
$ make install

ってしたんですね。案外早くてうけるーってなったんですけれど。
make testでいくつかのモジュール失敗するけれどまあCentOS5だしいっかーってのんきに考えてたんですね。これ伏線です。
で、

$ export PATH=/home/taniwaki-makoto/usr:$PATH

ってやったらもういっちょ上がりですわ。確かにPythonは楽だなって。
そんなもんなのでじゃあnodebrewいきましょかって

$ nodebrew install v0.8.18

ってやったら、おお、進みよる、進みよるってなって。まあちょいと時間かかるしカービィボウルの実況プレイ動画でも見ながら待ってたわけですね。
で、2本ぐらい見た後に見たら、bz2モジュールが使えねえぞゴラってなってて、ああ。ってココ伏線回収です。
さっきのmake testで幾つかモジュール失敗してた中にそういやあったなって。
まあこいつをビルドして入れるのはまあいいんですけれど、bzip2-develが仲間を連れてきたとかなったらちょっと嫌だし、開発サーバだし、今後bzip2使うかもとか言い聞かせてrootになって

$ yum install bzip2-devel

こいつやりおりましたわ。そんでもってさっきのPythonのビルドに戻るっと。make testしたらbz2モジュール入らねえっての消えてるしこれ来たってなったし、bzip2-devel入れるのにそんなに仲間連れてこなかったのでまあいっかってなって。

$ nodebrew install v0.8.18
$ nodebrew use v0.8.18
$ node -v
v0.8.18

やりおりましたわ。最近のNode.jsはnpmも入ってるし安心だね☆。perlbrew install-cpanmとかやんなくていいし。あ、最近僕もはやりのplenvに変えました。

そんなわけでCentOS5ちゃんにNode.jsが入ったのでkokorochan導入しますかね。。。