У меня есть приложение rails, использующее следующую среду:
CentOS выпуск 5.7 (финал)
Rails 3.0.9
Rubygems 1.6.2
Ruby 1.9.2
пассажир
Apache2
Среда разработки отличается и представляет собой: Ubuntu 10.04, Ruby 1.8.7, который работает как шарм. Я не могу изменить производственную среду.
Я использую ruby-xslt, gem версии 0.9.8, проблема в том, что при доступе к приложению я получаю сообщение об ошибке:
/usr/local/lib/ruby/gems/1.9.1/gems/ruby-xslt-0.9.8/lib/xml/xslt_lib.so: undefined symbol: xsltLibxmlVersion - /usr/local/lib/ruby/gems/1.9.1/gems/ruby-xslt-0.9.8/lib/xml/xslt_lib.so
Единственное решение, которое я могу найти по этому поводу:
http://amitsolanki.com/2010/04/undefined-symbol-xsltlibxmlversion-ruby-xslt-and-centos/
Что не работает для меня.
Я в тупике и хотел бы услышать ваше мнение о том, что делать:
Мои идеи следующие:
1) Не используйте ruby-xslt - однако это единственная библиотека xslt на основе ruby, которую я смог собрать в процессе разработки, поэтому я и использовал ее. (но я открыт для предложений).
2) Взломать lib ruby-xslt, чтобы удалить ссылку на символ, перекомпилировать и установить. (пробовал, но ошибка все еще появляется, поэтому я могу сделать это неправильно, после изменения я снова запускаю "ruby setup.rb" для драгоценного камня, но это всего лишь догадки.)
3) Измените среду Ruby на 1.8.7, как при разработке - не думайте, что это сработает, поскольку проблема заключается в геме ruby-xslt и библиотеке linux libxslt2.so, а не в ruby env. (так что на самом деле не собираюсь этого делать)
4) Добавьте символ в libxslt2.so lib, пересоберите и установите (но не работали с языком C в течение 15 лет)
Есть мысли по этому поводу?
С уважением
Пол