GAE/J+jRuby+SinatraでWebアプリ開発-環境設定編

所属する草野球チーム「IN3ニャンキース」の出欠表明アプリがサイバーテロに遭った。まぁ実害はなかったんだけど気持ち悪いので、ちゃんとした出欠システムを完備したニャンキースWebサイトを開発することにした。

ホスティングサーバーにはタダで使える(正確には普通の範囲では無料)ことからGoogleAppEngineを選択する。この時点でもはやWeb開発者のおれしかWebサイトのメンテナンスはできなくなることが決まる。まぁ仕方ない。

GAEの上では現在PythonJavaが公式にサポートされている。ところでJVMの上には色々なプログラミング言語が動くようになっていて、jRubyもその一つ。PythonJavaも勉強するのがめんどいなと思い、jRubySinatraでアプリケーションを作ることに決めた。


ここまでの決定に参考にしたサイトは以下の通り(作者の方本当にありがとうございました)


準備として、まずMacJavaをインストールする必要がある。調べてみたらちゃんと入っていたのは、昔XCodeを入れたときに入ったのかもしれない。

# java --version
# java version "1.6.0_17"
# Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
# Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)


次にjrubyをappengineの上で動かす魔法のライブラリ、google-appengineをgemからインストールする。google-appengineはgem1.3.5laterでないと動かないとのことなので、まず、gemのバージョンをチェックする。

# gem -v
# 1.3.1

くっ。これはソースコードからgemを入れなおすしか無い。

# wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz
# zsh: command not found: wget

えー!wgetが無い。。いろいろググッた感じ、macportを入れて一括管理するのが良さそうだ。
macportはここからSnowLeopard用のdmgを落とした。パッケージなので特にコマンドも不要で、GUIからインストール。

# port -v
# zsh: command not found: port

あれ??インストールしたのに。whichしても見つからないのでどうもPATHが遠っていないようだ。
portがインストールされる先は/opt/local/binらしいので、.zshrcに以下の設定を追加

# vi .zshrc
PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:$PATH
:wq

# port -v
# MacPorts 1.8.2


これでやっとwgetがインストールできる

# sudo port install wget
// 何事もなく成功

OK!!やっとgemの最新版をインストールできる

# wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz
# tar -xvf rubygems-1.3.6.tgz
# cd rubygems-1.3.6
# ruby setup.rb
# gem -v
# 1.3.6

いい感じ。これでgoogle-appengineのインストールがやっと出来る。

sudo gem install google-appengine

ここまでで結構長くなってしまったので、以降のアプリケーションの開発とデプロイは別のエントリにする。