проблема с libxml-ruby в Windows XP
-
13-09-2019 - |
Вопрос
Около месяца назад я установил libxml-ruby, используя Gem Install 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, которые раньше работали, больше не работают.Кто-нибудь еще пытался установить libxml-ruby в последнее время на Windows XP?Кажется, он полностью сломан.
Решение
У меня возникла та же проблема, и в итоге я нашел достойный обходной путь.
Кажется ошибка верная
'c:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake'
не является допустимым исполняемым файлом.Ему необходимо запустить rake из корневой папки Ruby/bin, где находится пакетный файл оболочки.
Покопавшись в коде Rubygems, я обнаружил, что Gem::Ext::RakeBuilder пытается создавать расширения, используя
cmd = ENV['rake'] || Gem.bin_path('rake') rescue Gem.default_exec_format % 'rake'
Таким образом, простая установка переменной среды 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, потому что они выводят кучу предупреждений о форматировании, что затрудняет вставку результатов сюда.)