Raf*_*ega 2 ruby ruby-on-rails libxml2 nokogiri rails-engines
我正在构建一个使用Nokogiri gem的rails引擎,我在MacOS 10.7和10.8中遇到了我的开发设置问题:
为了让Nokogiri在我的设置中正常工作,我更新了libxml和libxslt库:
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
Run Code Online (Sandbox Code Playgroud)
如果我在"常规"rails应用程序中使用它,Nokogiri可以正常工作(将它包含在Gemfile中,运行bundle install).
当我尝试从我正在构建的Rails引擎中使用Nokogiri并使用我的应用程序作为宝石时出现问题.
在gemspec中:
s.add_dependency 'nokogiri' # XML parsing
Run Code Online (Sandbox Code Playgroud)
我还在Gem的Gemfile顶部尝试了以下内容:
gem 'nokogiri'
Run Code Online (Sandbox Code Playgroud)
当我启动一个使用我的Rails Engine gem的应用程序时,我收到以下警告:
WARNING: Nokogiri was built against LibXML version 2.9.0, but has dynamically loaded 2.7.8
Run Code Online (Sandbox Code Playgroud)
如何配置gem和/或bundler和/或Rails以使用正确版本的Nokogiri和libxml以及libxslt?
另外,这是输出 nokogiri -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
Run Code Online (Sandbox Code Playgroud)
将Rails Engine gem放在应用程序Gemfile的顶部.然后,在Rails引擎的gemspec和Gemfile中,确保在使用libxml的其他gem(如pg)之前有nokogori.
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |