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/
というように既存のパスを設定します。