Пытаюсь исправить рецепт, который требует гемов nokogiri и savon на Centos 6.5.
Поскольку простой
chef_gem 'nokogiri'
require 'nokogiri'
chef_gem 'savon'
require 'savon'
не работает (повар говорит, что исправление libxml2 2.8.0 вернуло ошибку), (Edit: вот полная ошибка http://pastebin.com/mUZVyZ4H )
Решил попробовать установить nokogiri с системными библиотеками.
Если я сделаю это прямо на сервере, все будет нормально:
[vagrant@localhost ~]$ sudo /opt/chef/embedded/bin/gem install nokogiri -q --no-rdoc --no-ri -v "1.6.2.1" -- --use-system-libraries
Building native extensions. This could take a while...
Building nokogiri using system libraries.
Successfully installed mini_portile-0.6.0
Successfully installed nokogiri-1.6.2.1
2 gems installed
Но если запустить установку через Chef командой:
chef_gem "nokogiri" do
options("-- --use-system-libraries")
action :install
end
require 'nokogiri'
Я получаю сообщение об ошибке:
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of gem install nokogiri -q --no-rdoc --no-ri -v "1.6.2.1" -- --use-system-libraries ----
STDOUT:
STDERR: ERROR: Error installing nokogiri:
nokogiri requires Ruby version >= 1.9.2.
---- End output of gem install nokogiri -q --no-rdoc --no-ri -v "1.6.2.1" -- --use-system-libraries ----
Ran gem install nokogiri -q --no-rdoc --no-ri -v "1.6.2.1" -- --use-system-libraries returned 1
Поскольку встроенный Ruby - 1.9.3
[vagrant@localhost ~]$ /opt/chef/embedded/bin/ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
Я предполагаю, что Chef использует неправильный двоичный файл gem (системный Ruby - 1.8.7), но я понятия не имею, почему это происходит, особенно потому, что предыдущий chef_gem 'nokogiri'
казалось, использовал правильный.
Я что-то упускаю?