Estou tentando consertar uma receita que precisa das gemas nokogiri e savon no Centos 6.5.
Desde o simples
chef_gem 'nokogiri'
require 'nokogiri'
chef_gem 'savon'
require 'savon'
não funciona (o chef diz que o patch da libxml2 2.8.0 retornou um erro), (Edit: aqui está o erro completo link )
Eu decidi tentar instalar o nokogiri com as bibliotecas do sistema.
Se eu fizer isso diretamente no servidor, tudo funcionará bem:
[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
Mas se eu executar a instalação através do Chef com o comando:
chef_gem "nokogiri" do
options("-- --use-system-libraries")
action :install
end
require 'nokogiri'
Eu recebo um erro:
------------------------------------
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
Desde que o Ruby incorporado é 1.9.3
[vagrant@localhost ~]$ /opt/chef/embedded/bin/ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
Meu palpite é que o Chef está usando o binário errado (o sistema Ruby é 1.8.7), mas não tenho idéia do porquê isso está acontecendo, especialmente porque o chef_gem 'nokogiri'
anterior parecia usar o código correto.
Estou sentindo falta de algo?