- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
最近我在 Windows 上使用新的 RubyInstaller 安装了 Ruby 2.2.1。为了检查是否一切正常,我进入了一个 Rails 应用程序并运行了 bundle install
,它运行良好。但是,当我使用 bunle exec rake test
运行测试时,出现以下错误:
rake aborted!
LoadError: cannot load such file -- nokogiri/nokogiri
D:/Dev/Grummle/config/application.rb:7:in `<top (required)>'
D:/Dev/Grummle/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- nokogiri/2.2/nokogiri
D:/Dev/Grummle/config/application.rb:7:in `<top (required)>'
D:/Dev/Grummle/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
Bundler 说它是 Using nokogiri 1.6.5
。此外,rake 任务在 Ruby 2.1.5 中运行良好。我很欣赏关于如何解决这个问题的想法。谢谢! :)
最佳答案
我想我已经在我的系统上运行了:
我不知道做了什么才能让它工作,但我会分享我所做的:
使用 Ruby 2.2+
和 Nokogiri
的 Windows 问题是gem 无法编译。 Nokogiri 需要 libXML
、libxslt
和 libiconv
才能工作。这些名义上是在 gem install
中编译的,但出于某种原因,这不会出现在 Ruby 2.2+
中。
因此,为了安装 gem(这与 mysql2
和 rmagick
的情况完全相同),您需要系统依赖项(如上所述) .
从 Ruby 2.2+
开始,似乎 gems 会“安装”即使它们不依赖于系统(而不是通过不构建 native 扩展来拒绝安装在以前的版本中)。出现的新运行时错误包括 cannot load such file -- mysql2/2.2/mysql2 (LoadError)
以及 nokogiri
的相应文件(无法加载此类文件 -- nokogiri/nokogiri
)。
考虑到这一点,您必须了解这些 gem 的安装和工作方式。 mysql2
gem 就是一个很好的例子——要安装它,您需要 download the MYSQL C-Connector plugin然后使用以下代码链接到依赖项:gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector-path"'
使用Nokogiri
,您的系统上需要有libxml
、libiconv
和libxslt
。我从this post了解到:
问题就出在这里。我不是 100% 确定我在这里做了什么来让它工作(即使是暂时的)。我知道我安装了 Nokogiri gem,然后开始使用 ruby extconf.rb
编译 gem(这正是 gem 所做的)。考虑到我认为这是有效的,我将解释这是如何执行的。
gem 通常会通过安装下载库。它将这些保存在 ext/tmp/ports
文件夹中。对于我的系统,libiconv
的下载导致安装无法完成 (error about CPPFLAGS
)。考虑到这一点,我认为如果安装了 gem,并且它正在尝试构建,那么安装依赖项是明智的。
因此,我使用 --use-system-libraries
开关处理 ruby ext/extconf.rb
进程:
"...\nokogiri>ruby extconf.rb --platform=ruby -N --use-system-libraries --w
ith-xml2-dir=C:\Users\Richard\Downloads\Ruby\libxml2-2.7.8.win32 --with-xml2-include=C:\Users
\Richard\Downloads\Ruby\libxml2-2.7.8.win32\include --with-xml2-lib=C:\Users\Ric
hard\Downloads\Ruby\libxml2-2.7.8.win32\lib --with-iconv-dir=C:\Users\Richard\Do
wnloads\Ruby\iconv-1.9.2.win32 --with-iconv-include=C:\Users\Richard\Downloads\R
uby\iconv-1.9.2.win32\include --with-iconv-lib=C:\Users\Richard\Downloads\Ruby\i
conv-1.9.2.win32\lib --with-zlib-dir=C:\Users\Richard\Downloads\Ruby\zlib-1.2.5"
我将此与下载上述库(以及一些不起作用)相结合:
我没有上述命令的输出记录,但我很确定它按要求构建了扩展,最后说“Makefile”已编译。当 Makefile
可用时,您应该能够使用 nmake
( Windows 7.1 SDK ) 或 make
(MingW) 让它运行。我这样做了,它似乎奏效了。
我今天尝试加载服务器,它似乎可以正常工作。
这是我目前最好的。
我可以根据需要回答评论等问题。
关于ruby-on-rails - RubyInstaller 2.2.1 和 Rails - Rake 无法加载 Nokogiri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985328/
几天前,RubyInstaller 2.4 for Windows was released . 安装后,它会问我以下问题。 _____ _ _____
我在使用 rubyinstaller 包时遇到问题。我删除了指示指示我的路径,这可能是导致问题的原因之一。在我输入“rails s”后出现一条错误消息,我已经下载了 execjs gem 文件。但
在代码中实现ruby2d时出现此错误 这是一个奇怪的运行时问题 Ruby2d代码 require 'ruby2d' # Set the window size set width: 300, heig
我以前从未使用过 ruby,我只是想尝试一下 HAML 和 SASS。我下载并安装了Ruby's Windows installer (v1.9.1)。然后,我单击了 ruby.exe(图中带有黑
我的系统:windows 7 x64。 我已经安装了: 来自 RubyInstaller (1.8.7) 的 ruby gem 安装 rake gem 安装 libxml-ruby --platfor
我在尝试在我的 Windows 7 机器上设置 RoR 时遇到一些错误。我使用 RubyInstaller 和 DevKit 安装了 Ruby。在他们的指示中,它说执行 gem install rdi
最近我在 Windows 上使用新的 RubyInstaller 安装了 Ruby 2.2.1。为了检查是否一切正常,我进入了一个 Rails 应用程序并运行了 bundle install,它运行良
我通过 rubyforge 提供的 RubyInstaller 1.9.1 RC2 安装了 Ruby 、更新的 gem 和安装的 rails 。使用 webrick 一切正常。为了好玩,我使用“gem
我是一名优秀的程序员,十分优秀!