Ruby 的 OpenSSL 支持:“Cipher 不是模块 (TypeError)”

Ruby 的 OpenSSL 支持:“Cipher 不是模块 (TypeError)”

问题

我们的系统管理员需要升级 CentOS 5.4 开发服务器上的软件包,以匹配生产服务器上的软件包。升级影响了红宝石和/或openssl

我们运行一个 Ruby on Rails 问题跟踪系统,名为Redmine部署乘客在 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

当我尝试require 'openssl'IRB 时,我确实看到了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)

有什么帮助吗?

答案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/

寻找解决这个问题的方法花了很长时间...

相关内容