Ruby에 대한 OpenSSL 지원: "Cipher는 모듈이 아닙니다(TypeError)"

Ruby에 대한 OpenSSL 지원: "Cipher는 모듈이 아닙니다(TypeError)"

문제

우리 시스템 관리자는 프로덕션 서버의 패키지와 일치하도록 CentOS 5.4 개발 서버의 패키지를 업그레이드해야 했습니다. 영향을 받는 업그레이드루비및/또는openssl.

우리는 Ruby on Rails 문제 추적 시스템을 운영하고 있습니다.레드마인이는 다음과 같이 배포됩니다.승객아파치에서. 서버 업데이트 이전에는 모든 것이 작동했지만 지금 티켓 시스템에 액세스하려고 하면 다음 오류가 발생합니다.

에러 메시지:

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)

도움이 필요하세요?

답변1

루비 1.8.7 (2009-12-24 패치레벨 248) [x86_64-linux]

루비 소스 디렉토리에

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/

이 문제를 해결하는 데 시간이 너무 오래 걸렸습니다.

관련 정보