rvmからrailsを利用しようとすると'no such file to load -- openssl'のエラー

環境はUbuntu10.04です。

rvmからrailsを利用しようとすると、server実行時に

/home/masa/.rvm/gems/ruby-1.9.1-p378@rails2/gems/rails-2.3.8/lib/initializer.rb:271:in `rescue in require_frameworks': no such file to load -- openssl (RuntimeError)

というエラーが出力されました。

Ubuntuでaptからrubyをインストールする場合、通常は

sudo apt-get install ruby build-essential libopenssl-ruby ruby1.8-dev

というようにコマンドを実行します。そうすると、例えば

/usr/lib/ruby/1.8/openssl

といったような場所にopensslがインストールされるわけですが、rvmで実行されているrubyからはこのパスがみえないため、上記のエラーとなってしまいます。

解決手順は以下のとおりです。

手順1. 以下のコマンドで、rvm管理下にopensslをインストールする。

rvm package install openssl

手順2. いったん、インストール済みのrubyを削除する。

rvm remove 1.9.1

手順3.以下のオプションでrubyを再インストールする。(パスは環境によって読みかえてください)

rvm install 1.9.1 -C --with-openssl-dir=$HOME/.rvm/usr

上記手順2と3は、利用したいすべてのversionで必要となります。手順1については省略可能です。その場合、手順3のパスに

--with-openssl-dir=/usr/lib/ruby/1.8/

というように既存のパスを設定します。

参考:http://rvm.beginrescueend.com/packages/openssl/