2

大约一个月前,我使用 gem install libxml-ruby 安装了 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 吗?它似乎完全被打破了。

4

1 回答 1

4

我遇到了同样的问题,最终找到了一个体面的解决方法。

看来错误是正确的

'c:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake'

不是有效的可执行文件。它需要从根 ruby​​/bin 文件夹运行 rake,在该文件夹中可以找到包装批处理文件。

翻遍 ruby​​gems 代码,我发现 Gem::Ext::RakeBuilder 尝试使用

cmd = ENV['rake'] || Gem.bin_path('rake') rescue Gem.default_exec_format % 'rake'

因此,在运行 gem install 之前简单地将 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,因为它会打印出一堆格式警告,使得在此处粘贴结果更加困难。)

于 2009-05-05T16:18:21.413 回答