大约一个月前,我使用安装了 libxml-ruby gem 安装 libxml-ruby 效果很好。 然后我今天去另一台机器上安装它,但失败并出现以下错误:
C:\Windows\system32>gem install -r libxml-ruby
Building native extensions. This could take a while...
ERROR: Error installing libxml-ruby:
ERROR: Failed to build gem native extension.
c:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake RUBYARCHDIR=c:/ruby/lib/ruby/
gems/1.8/gems/libxml-ruby-1.1.3-x86-mswin32-60/lib RUBYLIBDIR=c:/ruby/lib/ruby/g
ems/1.8/gems/libxml-ruby-1.1.3-x86-mswin32-60/lib
'c:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake' is not recognized as an int
ernal or external command,
operable program or batch file.
Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/libxml-ruby-1.
1.3-x86-mswin32-60 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/libxml-ruby-1.1.3-x86-mswin32-6
0/ext/mingw/gem_make.out
我安装了 rake 和 win32-api
然后我很困惑我之前是否真的在我的机器上安装了 libxml-ruby 并尝试卸载并重新安装它。现在它在我的机器上失败并出现相同的错误消息,并且我编写的一些用于解析 xml 的脚本过去可以工作,但不再工作。最近有其他人尝试在 Windows XP 上安装 libxml-ruby 吗?它似乎完全被打破了。
最佳答案
我也遇到了同样的问题,最终找到了一个不错的解决方法。
看来错误是正确的
'c:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake'
不是有效的可执行文件。它需要从根 ruby/bin 文件夹运行 rake,在该文件夹中可以找到包装批处理文件。
翻阅 rubygems 代码,我发现 Gem::Ext::RakeBuilder 尝试使用构建扩展
cmd = ENV['rake'] || Gem.bin_path('rake') rescue Gem.default_exec_format % 'rake'
因此,在运行 gem 安装之前简单地将 rake 环境变量设置为有效的值应该会有所帮助:
C:\>set rake=c:\ruby-1.8.6-26\bin\rake.bat
C:\>gem install libxml-ruby --no-rdoc --no-ri
Building native extensions. This could take a while...
Successfully installed libxml-ruby-1.1.3-x86-mswin32-60
1 gem installed
(我跳过了安装 rdoc 和 ri,因为它会打印出一堆格式警告,使得将结果粘贴到此处变得更加困难。)
关于windows-xp - Windows XP 上的 libxml-ruby 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/783824/