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

2

O problema

Nosso administrador de sistemas precisava atualizar os pacotes em nosso servidor de desenvolvimento do CentOS 5.4 para combinar com os pacotes em nosso servidor de produção. A atualização afetou ruby e / ou openssl .

Nós executamos um sistema de rastreamento de problemas Ruby on Rails chamado Redmine que é implantado com Passenger no Apache. Tudo funcionou 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 da aplicação:

/home/dev/rails/redmine-0.8.7 

Eu tenho tentado arduamente consertar esse problema, mas não consigo superar.

Eu tentei seguir este guia: link

Quando tento require 'openssl' no IRB, vejo um valor de retorno true . No entanto, ainda estou vendo o Cipher.rb não é um módulo TypeError ao acessar o sistema de ticket.

Possivelmente (provavelmente) relacionado:

Eu tentei atualizar o Passenger, mas quando tento passenger-install-apache2-module , vejo:

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)

Alguma ajuda?

    
por macek 19.02.2010 / 19:39

1 resposta

2

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

no diretório de origem do 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 correção para isso demorou muito tempo ...

    
por 19.02.2010 / 22:05