Como carregar a versão correta de bibliotecas dinâmicas e gems (libxml, Nokogiri) dentro de uma gem customizada do Rails?
Eu estou construindo um mecanismo de trilhos que usa a gema Nokogiri e estou tendo problemas com a minha configuração de desenvolvimento no MacOS 10.7 e 10.8:
Para o Nokogiri funcionar corretamente na minha configuração, atualizei as bibliotecas libxml e libxslt com:
brew update
brew install libxslt
brew upgrade libxml2
gem uninstall nokogiri
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28
E Nokogiri funciona corretamente se eu usá-lo em um aplicativo de trilhos "regular" (incluí-lo no Gemfile, instale o pacote de execução).
O problema aparece quando tento usar o Nokogiri de um mecanismo Rails que estou construindo e usando do meu aplicativo como uma gema.
Em gemspec:
s.add_dependency 'nokogiri' # XML parsing
Eu também tentei o seguinte no topo do Gemfile da Gem:
gem 'nokogiri'
Quando eu inicio um aplicativo que usa minha gem do Rails Engine, recebo o seguinte aviso:
WARNING: Nokogiri was built against LibXML version 2.9.0, but has dynamically loaded 2.7.8
Como faço para configurar a gem e / ou bundler e / ou Rails para usar a versão correta do Nokogiri e libxml e libxslt?
Além disso, aqui está a saída denokogiri -v
# Nokogiri (1.5.9)
---
warnings: []
nokogiri: 1.5.9
ruby:
version: 1.9.3
platform: x86_64-darwin12.3.0
description: ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]
engine: ruby
libxml:
binding: extension
compiled: 2.9.0
loaded: 2.9.0