Назад | Перейти на главную страницу

Поддержка OpenSSL для Ruby: «Cipher не является модулем (TypeError)»

Эта проблема

Нашему системному администратору потребовалось обновить пакеты на нашем сервере CentOS 5.4 dev, чтобы они соответствовали пакетам на нашем производственном сервере. Обновление затронуло Рубин и / или 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)

Любая помощь?

ruby 1.8.7 (24.12.2009, уровень патчей 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/

На поиск решения этой проблемы ушло очень много времени ...