Hi,
I'm writing a couple of thor jobs to configure a workstation for Chef development. One of the things I want to do is to install a few gems into the chefdk installed on the system if they don't exist. I thought it would be simple enough to just shell out and run the chef command to install these gems (i.e. `chef gem install kitchen-ec2` but calling the chef command, or indeed the ChefDK ruby from within my bundle results in an error stating that a gem can't be found.
So if I run
bin/thor myorg:check (where bin/thor is a binstub in my bundle) and in the thor jobs there's any command that calls the chef executable, e.g.
`chef -v` then I get the following:
/Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound)
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/spec_set.rb:85:in `map!'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/spec_set.rb:85:in `materialize'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/definition.rb:139:in `specs'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/definition.rb:184:in `specs_for'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/definition.rb:173:in `requested_specs'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/environment.rb:18:in `requested_specs'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/runtime.rb:13:in `setup'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler.rb:127:in `setup'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.10.3/lib/bundler/setup.rb:18:in `<top (required)>'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
or
system('chef -v') then I get the following error:
Could not find rake-10.4.2 in any of the sources
Run `bundle install` to install missing gems.
My bundle has that rake gem but for ruby v2.0.x instead of v2.1.x which the chefdk uses. I'm guessing that running from within a bundle is messing up the bundle environment that the chef executable uses, but I've not the knowlege of how this works to get it working.