既存の Rails アプリを JRuby で動かす

インストールから順番にやってみる

インストール

JRuby のサイトからダウンロードして適当なパスに展開.

% cd ~/tmp
% tar zxvf ~/downloads/jruby-bin-1.3.1.tar.gz
% sudo mv jruby-1.3.1 /usr/local/jruby
% export PATH=$PATH:/usr/local/jruby/bin
% jruby -v
jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_12) [amd64-java]

Rails のインストール

適宜インストールします.ただし環境変数 GEM_HOME が指定されていたりすると,そこにインストールしようとして Permission error になる可能性あり.なのでそれを JRuby 用に指定し直します.

% GEM_HOME=/usr/local/jruby/lib/ruby/gems/1.8 jruby -S gem install rails --no-ri --no-rdoc
JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
Successfully installed activesupport-2.3.4
Successfully installed activerecord-2.3.4
Successfully installed rack-1.0.1
Successfully installed actionpack-2.3.4
Successfully installed actionmailer-2.3.4
Successfully installed activeresource-2.3.4
Successfully installed rails-2.3.4

ついでに

% GEM_HOME=/usr/local/jruby/lib/ruby/gems/1.8 jruby -S gem install jruby-openssl --no-ri --no-rdoc
JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
Successfully installed jruby-openssl-0.5.2
1 gem installed

MySQL アダプタのインストール

gem にある mysql は native extension なので,そのままでは動きません.なので,JDBC 経由で接続するアダプタをインストールします.

% GEM_HOME=/usr/local/jruby/lib/ruby/gems/1.8 jruby -S gem install activerecord-jdbcmysql-adapter --no-ri --no-rdoc
Successfully installed activerecord-jdbc-adapter-0.9.2
Successfully installed jdbc-mysql-5.0.4
Successfully installed activerecord-jdbcmysql-adapter-0.9.2
3 gems installed

database.yml の書き換え

さらに database.yml の adapter を書き換えます.

% sed -i 's/mysql/jdbcmysql/g' config/database.yml

サーバの立ち上げ

WEBrick で立ち上げます.

% jruby script/server

まとめ

普通に動かす分にはこれで大丈夫そうな感じなんですが,テスト関係が微妙な感じです.そもそも Rails のデータベース関連の rake tasks が jdbcmysql に対応していないので,何か別の方法を使わないとダメそうでした.

さて jpmobile の漢字コード変換をいろいろ見てるかな....

 
comments powered by Disqus