netBeansにて、rvmでインストールしたRubyのGemがrequireできない場合の対応について

Mr. James Gosling & NekoBean T-Shirt, General Session, Sun Tech Days 2008 in Tokyo Day1, 2008.12.02
Photo:Mr. James Gosling & NekoBean T-Shirt, General Session, Sun Tech Days 2008 in Tokyo Day1, 2008.12.02 By Yuichi Sakuraba

いまさらながら、ちょっとしたRubyのプログラムを書く時にnetBeansにおおいに嵌っています。
実行する時に[Shift]+[F6](Macの場合、[F6]がちょっと押しにくいけど・・)はとっても便利です。

しかし、netbeansが自動検出したプラットフォームの設定では、Gemがrequireできない場合がよくあります。この場合は、netbeansRubyプラットフォームマネージャーで設定されているgem環境が、使用しているrvmのRubyプラットフォームのgem環境と違う場合が考えられます。(そもそも設定していない場合も)

まずは、netbeansにrvmのプラットフォームを自動検出してもらう。

  1. netbeansのメニューバーの[ツール]→[Rubyプラットフォーム](Ruby Platform)を開く
  2. Rubyプラットフォームマネージャーを立ち上げる
  3. [プラットフォームを自動検出](Autodetect Platforms)をクリック


コマンドラインにて使用したいrvmに設定して(rvm use XXX)「gem env」にて、環境を表示します。

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.25
  - RUBY VERSION: 1.9.2 (2012-04-20 patchlevel 320) [x86_64-darwin10.8.0]
  - INSTALLATION DIRECTORY: /Users/user_name/.rvm/gems/ruby-1.9.2-p320
  - RUBY EXECUTABLE: /Users/user_name/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/user_name/.rvm/gems/ruby-1.9.2-p320/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /Users/user_name/.rvm/gems/ruby-1.9.2-p320
     - /Users/user_name/.rvm/gems/ruby-1.9.2-p320@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://rubygems.org/", "http://gems.github.com/"]
  - REMOTE SOURCES:
     - http://rubygems.org/
     - http://gems.github.com/

netbeansRubyプラットフォームマネージャーの右側のリストにて、対象となるRubyプラットフォームを洗濯して、各設定値が正しいか?パスなどに誤りがない確認して、違う場合は修正します。とくにコマンドラインの「GEM PATHS:」のRubyプラットフォームマネージャーの「Gem Path:」とパスが正しいか確認します。

それでも、Gemがrequireできないなどのエラーの場合は、「netbeans.conf」に環境変数の設定を追加すればできる場合が多いので試してみてください。

netbeans.conf」は「/Applications/NetBeans/NetBeans\ 7.3.1.app/Contents/Resources/NetBeans/etc」みたいなところにあります。