iKnow! APIアプリのJRuby開発環境を整える、はずが・・

前回表明した、iKnow! APIアプリコンテストの開発を始めることにします。まずは開発環境を整えます。
普通にRubyモジュールとして、httpリクエストを投げる単純なものを使ってもいいのですが、(iKnow!のサイトでもRubyの場合はrest-open-uriとかnet/httpとかを推奨されてます)、iKnow!サービス提供元のCeregoにも所属するNOVさんが簡単にAPIを使えるgemを公開されていますので、それを使ってみます。

JRubyのインストール

とりあえずローカル環境は、VMPlayer&Ubuntuといういつものパターンで用意して、そこにJRubyをインストールします。Ubuntuは8.10、JRubyは1.1.5にそれぞれバージョンアップされています。それぞれのインストール方法は以前こちらに書いたので、参照してください。

fujibee@ubuntu810server:~$ jruby -v
jruby 1.1.5 (ruby 1.8.6 patchlevel 114) (2008-11-03 rev 7996) [i386-java]

ここまでくればOKです。

nov-iknowのインストール

NOVさんのブログに従って、インストールします。

http://railspress.matake.jp/iknow-gem-released

まず、nov-iknowgithubにホストされているので、gemにgithubリポジトリを認識させます。

$ sudo $JRUBY_HOME/bin/jruby -S gem source -a http://gems.github.com
http://gems.github.com added to sources

(jrubyのパスがsudoの場合引き継がれないようです・・ここらへんを見ると、sudoのセキュリティが強化された?)

つぎに、gem installです。

$ sudo $JRUBY_HOME/bin/jruby -S gem install nov-iknow
JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
Building native extensions.  This could take a while...
/usr/share/jruby-1.1.5/lib/ruby/1.8/mkmf.rb:7: JRuby does not support native extensions. Check wiki.jruby.org for alternatives. (NotImplementedError)
        from /usr/share/jruby-1.1.5/lib/ruby/1.8/mkmf.rb:1:in `require'
        from extconf.rb:1
ERROR:  Error installing nov-iknow:
        ERROR: Failed to build gem native extension.

/usr/share/jruby-1.1.5/bin/jruby extconf.rb install nov-iknow

Gem files will remain installed in /usr/share/jruby-1.1.5/lib/ruby/gems/1.8/gems/json-1.1.3 for inspection.
Results logged to /usr/share/jruby-1.1.5/lib/ruby/gems/1.8/gems/json-1.1.3/ext/json/ext/parser/gem_make.out

おっと、json用native extensionがビルドできなかったようです!うーん、ちょっとJRubyでやるのは難しいのかな?気合でgemを通せるようにするか、crubyを使うか、別の方法でAPIを叩くか。。調べてみます。