JRubyOnRails に挑戦

RubyよりJRubyの方が速いというのを聞いて、今更ながら試してみました。

JRubyのインストールからRailsのインストールまでやってます。
ActiveRecord-JDBC + SQlite3-JDBCドライバを使おうとして挫折。 ←今ここ

ログ形式でお送り致します。(単に過去形なだけ)
ちなみに、環境は Fedora8 + Sun JDK 6 です。
JDK のインストールについては、既にインストール済みでしたので省略します。

JRuby のインストール

JRuby 本家 (http://jruby.codehaus.org/) からJRubyをダウンロードしました。

http://dist.codehaus.org/jruby/jruby-bin-1.1RC2.tar.gz

RCだろうが何も恐れず、JRuby 1.1 RC-2 をダウンロード。

ファイルを展開して、以下のパスに配置しました。

/usr/local/jruby

環境変数を設定するために、~/.bashrc に次の設定を追加しました。
パスも通しました。

export JAVA_HOME=/usr/java/default
export JRUBY_HOME=/usr/local/jruby
export PATH=$PATH:$JAVA_HOME/bin:$JRUBY_HOME/bin

Railsのインストール

すでにRubyRailsがインストールされていても、JRuby側は別環境なので、またインストールする必要があります。
ちなみに、rubygemsJRubyに付属していますので、インストールする必要はありませんでした。
# むしろ、インストールしたらエラーがでてgemがうごかなくて困りました

JRubyからgemを実行するときは次のようにすると簡単です。

$ jruby -S gem -v     #=>  1.0.1

Railsをインストール。

$ sudo jruby -S gem install rails

ちょっと前までつけていた、 -y とか --include-dependency とかつけなくても、デフォルトでこのオプションはONになるようになったみたいです。

JRubyのOpenSSLは機能限定的らしいので、jruby-opensslを入れて。ってでるのでとりあえずいれます。

$ sudo jruby -S gem install jruby-openssl

これで終わりです。

rails 実行するには、gemと同じようにします。

$ jruby -S rails  hogehoge

ActiveRecord-JDBC

※ ここで挫折しました。ここから先はほとんど参考になりません。

sqlite3-ruby はエラーが出て gem でインストールできなかったので、ActiveRecord-JDBC + Sqlite3-JDBC を試してみました。

ActiveRecord用の JDBC アダプタをインストールしました。

$ sudo jruby -S gem install ActiveRecord-JDBC


Sqlite3の JDBCドライバは次のURLからダウンロードできます。

SQLiteJDBC
 http://www.zentus.com/sqlitejdbc/index.html

Rails の設定は、 config/database.yml で、

  adapter: jdbc
  driver: org.sqlite.JDBC
  url: jdbc:sqlite:db/development.sqlite3
  timeout: 5000

としました。


が、動きませんでした。
ぐぐってたら、「SQlite JDBC には対応してない」 っていう記事がちらほら。
まー、普通に動くJDBCドライバがあるDBMSを使えばいいんでしょうけど。

というわけで、Railsが動く様はまだ拝んでいません。


ちなみに、JRuby、まともに日本語が扱えないようでした。
ためしに、jirb で、

a = "日本語"

ってやると、

"???"

ってでました。

結局

http://journal.mycom.co.jp/news/2007/10/10/019/index.html

この記事にかいてある、 glassFishRailsをうごかしてみたかっただけでした。

メモ↓

 $ cd $RAILS_ROOT
 $ jruby -S glassfish_rails .

ってやれば起動します。