web-dev-qa-db-ja.com

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

問題

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

Ruby on Rails問題追跡システム Redmine と呼ばれ、Apacheで Passenger とともにデプロイされます)を実行します。サーバーの更新前はすべて機能していましたが、今すぐチケットシステムにアクセスしようとすると、次のエラーが発生します。

エラーメッセージ:

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がモジュール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)

何か助けはありますか?

2
macek

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/

これに対する修正を見つけるのに非常に長い時間がかかりました...

2
macek