GetText使いたい!

JRubyで作っているRailsアプリでGetTextが使いたくなってきた。インストールできないのは確認済みなんだけど、使えないと分ると余計に使いたいと思うのが人情ってもの。

> jruby -S gem install gettext
Need to update 3 gems from http://gems.rubyforge.org
...
complete
Select which gem to install for your platform (java)
 1. gettext 1.10.0 (mswin32)
 2. gettext 1.10.0 (ruby)
 3. gettext 1.9.0 (mswin32)
 4. gettext 1.9.0 (ruby)
 5. gettext 1.8.0 (mswin32)
 6. gettext 1.8.0 (ruby)
 7. gettext 1.7.0 (mswin32)
 8. gettext 1.7.0 (ruby)
 9. Skip this gem
 10. Cancel installation
> 2
Building native extensions.  This could take a while...
Error opening script file: extconf.rb (指定されたファイルが見つかりません。)
ERROR:  While executing gem ... (Gem::Installer::ExtensionBuildError)
    ERROR: Failed to build gem native extension.

ruby extconf.rb install gettext


Gem files will remain installed in $JRUBY_HOME/lib/ruby/gems/1.8/gems/gettext-1.10.0 for inspection.
Results logged to $JRUBY_HOME/lib/ruby/gems/1.8/gems/gettext-1.10.0/ext/gettext/gem_make.out

以前はインストールできるまで待てばいいかーとか軽く考えてたんだけど、今回は何かできることがあるかと考えました。で、まずはログを見ようと。$JRUBY_HOME/lib/ruby/gems/1.8/gems/gettext-1.10.0/ext/gettext/gem_make.out の中身はこれ。

ruby extconf.rb install gettext

で、これを実行してみた。

>jruby extconf.rb install gettext --debug --backtrace
:1: no such file to load -- mkmf (LoadError)

mkmfって何さ?と思って調べたらmake関係なのね。

Ruby の拡張ライブラリのための Makefile を作成するライブラリです。通常 extconf.rb という名の ruby スクリプトの中で require され、このスクリプトを実行することで Makefile を作成するのが慣習となっています。

へー、そうなんだー。考えてみたら拡張ライブラリを作ろうって思ったことがなかった。ちゃんとRubyの仕組みとかも知りたいなー。でも、$RUBY_HOME/lib/ruby/1.8/mkmf.rbを見てみたら、

まあ、mkmfが過去のいろんなしがらみ(というか、段階的な開発)により 複雑化してるのは認めるけど

とまつもとさんが言う通り複雑で、僕じゃどうにもならないということが即判明。自分、Ruby力まだまだっす