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-iknowはgithubにホストされているので、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を叩くか。。調べてみます。