RubyGemsを使ったRailsのインストールでの注意点
やっと時間が取れたのでRuby on Railsのインストールに挑戦。
ところがRubyGemsを使ってRailsをインストールする所で手こずる。
$ sudo gem install rails --include-dependencies
このコマンドを実行するが、以下のエラーが帰って来た。
/opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- sources (LoadError) from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/source_info_cache.rb:6 from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/remote_installer.rb:12 from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /opt/local/lib/ruby/vendor_ruby/1.8/rubygems.rb:112:in `manage_gems' from /opt/local/bin/gem:10
どうもsourceという名のファイルが無いというエラーのようだ。探しまわったあげくに、/opt/local/lib/ruby/gems/gems/sources-0.0.1/lib にsource.rbというファイルが有るのを発見。ファイルが有るが見えてないという状態のようだ。
このディレクトリにRubyのロードパスを通してやる事で解決した。Rubyのロードパスは、シェル変数RUBYLIBに追加したいパスを記述する事で設定できる。私の場合は、bashなのだが、以下の2行を .bashrcに追加。
RUBYLIB=/opt/local/lib/ruby/gems/gems/sources-0.0.1/lib export RUBYLIB
これで、gemのinstallコマンドが実行でき、Railsを無事インストールする事ができた。
残る疑問は、どうしてこの手順が必要だったのかと言うこと。
RubyGemsは、MacPortを利用してインストールした。このRubyGemsのインストールの工程としてRubyのロードパスにこのsource.rbへのパスが設定されるべきだったのか。それとも、このsource.rbは、Rubyのロードパスが通ったディレクトリにコピーして使う物だったのか。