Ruby の OpenSSL サポート: 「Cipher はモジュールではありません (TypeError)」

Ruby の OpenSSL サポート: 「Cipher はモジュールではありません (TypeError)」

問題

当社のシステム管理者は、CentOS 5.4開発サーバーのパッケージを本番サーバーのパッケージと一致するようにアップグレードする必要がありました。アップグレードの影響はルビーおよび/またはオープンSSL

私たちはRuby on Railsの問題追跡システムを運営しています。レッドマイン配備されている乗客Apache で。サーバーの更新前はすべて正常に動作していましたが、現在チケット システムにアクセスしようとすると、次のエラーが発生します。

エラーメッセージ:

Cipher is not a module

例外クラス:

TypeError

アプリケーションルート:

/home/dev/rails/redmine-0.8.7 

この問題を解決するために一生懸命努力してきましたが、どうも解決できないようです。

私はこのガイドに従ってみました:
http://iamclovin.posterous.com/how-to-solve-the-cipher-is-not-a-module-error

IRB で試してみるとrequire 'openssl'、戻り値が表示されますtrue。ただし、チケット システムにアクセスすると、Cipher.rb is not a module TypeError が引き続き表示されます。

おそらく関連がある:

Passenger を更新しようとしましたが、試してみると次passenger-install-apache2-moduleのメッセージが表示されます:

Checking for required software...

* GNU C++ compiler... found at /usr/bin/g++
* Ruby development headers... found
* OpenSSL support for Ruby... /usr/lib/ruby/1.8/openssl/cipher.rb:22: Cipher is not a module (TypeError)

何か助けて?

答え1

ruby 1.8.7 (2009-12-24 パッチレベル 248) [x86_64-linux]

rubyソースディレクトリ内

cd ext/openssl/
ruby extconf.rb 
make
sudo make install
sudo cp -R /usr/local/lib/ruby/site_ruby/1.8/openssl* /usr/lib/ruby/1.8/

この問題を解決するには、非常に長い時間がかかりました...

関連情報