Назад | Перейти на главную страницу

Chef, установка nokogiri с системными библиотеками не выполняется на Centos 6.5

Пытаюсь исправить рецепт, который требует гемов 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' казалось, использовал правильный.

Я что-то упускаю?