Могу ли я включить системные библиотеки (например, libxml2), которые я компилирую, в гем (например, nokogiri), который я могу развернуть на Heroku?

У Nokogiri есть проблема с переводом в символы UTF-8 и обратно, которые, как выяснилось, происходят из libxml2, в частности из версии 2.7.6, которая является самой высокой поддерживаемой версией в Ubuntu 10.04 LTS. Ошибка исправлена ​​в версии 2.7.7 и выше, но поскольку наше приложение размещено на Heroku (стек bamboo-ree-1.8.7, на основе Ubuntu 10.04), мы должны использовать версию 2.7.6 и продолжать испытывать ошибка, если только:

  1. Кто-то может / взломал nokogiri, чтобы обойти проблему
  2. Canonical ударил поддерживаемую версию libxml2 для Ubuntu 10.04 (и / или Heroku обновляет libxml2 в своем стеке)
  3. Я могу придумать способ для nokogiri использовать версию libxml2, которую я могу связать с приложением таким образом, чтобы его можно было развернуть на Heroku.

Конечно, приятно слышать отзывы по 1 или 2, но интересно, возможно ли 3. Вот что я знаю о возможности:

  • Nokogiri можно связать с библиотекой, расположенной в нестандартном месте - http://nokogiri.org/tutorials/installing_nokogiri.html
  • Созданный таким образом гем может быть установлен в vendor / gems и, таким образом, имеет приоритет над системными гемами

Мой вопрос: могу ли я включить libxml2 с более высокой версией в приложение таким образом, чтобы скомпилированный поставщик 'ed gem использует его, когда я зафиксировал его и отправил в Heroku?

7
задан Ben MacLeod 22 December 2011 в 02:52
поделиться