2011年9月29日

UbuntuでRails3.1

Rails3.1をCapistranoでデプロイしようとして、けっこうはまった。
そもそも、3.0時代にデプロイしておけばよかったのだが、どうせデプロイするなら、環境も最新にした方が、後でめんどうがないだろうとRailsをこの際アップデートしておいた。
みんなも大好きなRailsCastsを見ながら、一時停止を繰り返しながら、AsciiCastsの方からコピペして、設定していく。
ほんとは、AsciiCastsだけでじゅうぶんなんだけど、そこはまあ、ライブ感があって楽しいので、ビデオを見ながらやっていく。

さて、いろいろやって、cap deploy:updateまでこぎつけた。
ここで出る、javascriptのランタイムがないというエラーは、こちらをはじめとして、あちこちで報告されている。
で、Gemfileに以下を追記。
gem 'execjs'
gem 'therubyracer'


これで動くかと思えば、そうでもない、と。
どういう環境だと、これで解決するのかな。
うちは、Ubuntu10.10なんですが、うまく動きません。

なるほど、ランタイムがないのか。therubyracerは違うの?と思いつつnode.jsを入れようと思い立つ。
とりあえず、適当にやってみる。
apt-get install node


これだと、
axconfig: port 1 not active

こんなエラーが出る。
なんでやねん!

こちらでは、「それは、node.jsではなく、nodeをインストールしたからだ。ずぼらせずに、gitでとってきてコンパイル・インストールしろ。」と書かれている。
どうやら、nodeというパッケージは全然関係ないみたい。


git clone https://github.com/joyent/node.git
cd node && ./configure && make
make test
make install

makeでエラーが出るけど、「無視されました」と出て、コンパイル成功。
testでもエラーが出るけど、無視してインストール。
(いつか怖いことが起きそうな気がする)


ここで再びエラー。

今度は、currentがディレクトリなので削除できないよ!ってやつ。
そりゃあ、rm -fでは削除できないでしょ?
勝手にディレクトリ作って、削除できないようもないけどなあ。。。
そういえば、このディレクトリ(current/public)は、apacheをちゃんと設定できているかのテストのために作成したものだった。

そこで、このディレクトリを削除すると、ついにデプロイが完了。

というわけで、もうちょっとしたら、アプリ、超αですが、リリースできそうです。

0 件のコメント: