Suporte OpenSSL para Ruby: “Cipher não é um módulo (TypeError)”

Suporte OpenSSL para Ruby: “Cipher não é um módulo (TypeError)”

O problema

Nosso administrador de sistemas precisava atualizar os pacotes em nosso servidor de desenvolvimento CentOS 5.4 para corresponder aos pacotes em nosso servidor de produção. A atualização afetadarubie/ouabressl.

Executamos um sistema de rastreamento de problemas Ruby on Rails chamadoRedmineque é implantado comPassageirono Apache. Tudo funcionava antes da atualização do servidor, mas ao tentar acessar o sistema de tickets agora, recebo o seguinte erro:

Mensagem de erro:

Cipher is not a module

Classe de exceção:

TypeError

Raiz do aplicativo:

/home/dev/rails/redmine-0.8.7 

Tenho tentado muito resolver esse problema, mas não consigo vencê-lo.

Eu tentei seguir este guia:
http://iamclovin.posterous.com/how-to-solve-the-cipher-is-not-a-module-error

Quando tento require 'openssl'no IRB, vejo um truevalor de retorno. Porém, ainda estou vendo que Cipher.rb não é um módulo TypeError ao acessar o sistema de tickets.

Possivelmente (provavelmente) relacionado:

Tentei atualizar o Passenger, mas quando tento passenger-install-apache2-modulevejo:

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)

Qualquer ajuda?

Responder1

ruby 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux]

no diretório de origem 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/

Encontrar uma solução para isso levou muito tempo...

informação relacionada