Closed laradji closed 11 years ago
Okay it seem , your cookbook is not compatible with the chef ominibus version.
Here more :
LoadError: cannot load such file -- iconv
/opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require' /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require'
/var/chef/cache/cookbooks/cpan/providers/client.rb:1:in class_from_file' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/mixin/from_file.rb:42:in
class_eval'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/mixin/from_file.rb:42:in class_from_file' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/provider.rb:213:in
block in build_from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/provider.rb:193:in initialize' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/provider.rb:193:in
new'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/provider.rb:193:in build_from_file' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:164:in
block in load_lwrp_providers'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:230:in call' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:230:in
block (2 levels) in foreach_cookbook_load_segment'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:229:in each' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:229:in
block in foreach_cookbook_load_segment'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:227:in each' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:227:in
foreach_cookbook_load_segment'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:161:in load_lwrp_providers' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:155:in
load_lwrps'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/run_context.rb:64:in load' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/client.rb:198:in
setup_run_context'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/client.rb:418:in do_run' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/client.rb:176:in
run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/application/client.rb:283:in block in run_application' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/application/client.rb:270:in
loop'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/application/client.rb:270:in run_application' /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/lib/chef/application.rb:70:in
run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-10.14.0/bin/chef-client:26:in <top (required)>' /usr/bin/chef-client:23:in
load'
/usr/bin/chef-client:23:in `
I replace Iconv by ecode!
and force_encoding
methods from String Class, which only works for ruby 1.9.*. So it would work with omnibus chef. But I need to rewrite it in a future so code be compatible with any ruby. Fixed in version 0.0.22
Thanks !
It seem we need to have the iconv gem
elevant File Content:
/var/chef/cache/cookbooks/cpan/providers/client.rb:
1>> require 'iconv' 2:
3: def load_current_resource 4:
5: @installer = Chef::Resource::CpanClient.new(new_resource.name) 6: @installer.name(new_resource.name) 7: @installer.module_name(new_resource.module_name) 8: @installer.install_base(new_resource.install_base) 9: @installer.dry_run(new_resource.dry_run) 10: @installer.reload_cpan_index(new_resource.reload_cpan_index)