mwrock / kitchen-nodes

A Test Kitchen Provisioner that generates searchable Nodes.
Other
37 stars 24 forks source link

Gem conflict on Windows workstation, not sure how to solve #20

Open dloomer opened 8 years ago

dloomer commented 8 years ago

This isn't necessarily an issue with kitchen-nodes but the guy on my team exhibiting this issue can install and use chef-zero just fine, and I wouldn't expect the gem dependencies in question to be different.

Disclaimer: my ruby experience is entirely based in Chef. This could turn out to be a painfully n00b-ish issue.

After doing a gem install kitchen-nodes (we try not to use bundler with Chef/test-kitchen) and then issuing a kitchen command:

>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ClientError
>>>>>> Message: Could not load the 'nodes' provisioner from the load path. Please ensure that your provisioner is installed as a gem or included in your Gemfile if using Bundler.

and then the relevant section of .kitchen.log:

E, [2016-03-22T11:31:18.893842 #1716] ERROR -- Kitchen: Class: Kitchen::ClientError
E, [2016-03-22T11:31:18.893842 #1716] ERROR -- Kitchen: Message: Could not load the 'nodes' provisioner from the load path. Please ensure that your provisioner is installed as a gem or included in your Gemfile if using Bundler.
E, [2016-03-22T11:31:18.894842 #1716] ERROR -- Kitchen: ---Nested Exception---
E, [2016-03-22T11:31:18.894842 #1716] ERROR -- Kitchen: Class: Gem::ConflictError
E, [2016-03-22T11:31:18.894842 #1716] ERROR -- Kitchen: Message: Unable to activate chef-12.4.3-universal-mingw32, because mixlib-shellout-2.2.1-universal-mingw32 conflicts with mixlib-shellout (< 2.2, >= 2.0.0.rc.0)

I'm the only other one on our team testing with kitchen-nodes at the moment, and I have no issue but I'm also using a Mac.

Is there something we should explicitly install to resolve this, or is kitchen-nodes just not compatible with the Chef 12.4.3 gem on Windows?

mwrock commented 8 years ago

Yeah. These Gem conflicts can be truly painful. Usually the first thing you can try is just blow away your Gemfile.lock file and do a fresh bundle install. That will force bundler to resolve everything fresh and it may result in a conflict free bundle.

aarsan commented 8 years ago

I am getting this same error after upgrading test-kitchen from 1.11.0 to 1.13.0. hmm

mwrock commented 8 years ago

might try installing the latest chef-dk (0.18.26) to clear up any gem conflicts

JPvRiel commented 8 years ago

Similar issue happened to me. I used gem install kitchen-nodes.

$ chef exec gem list | grep kitchen
kitchen-dokken (0.0.31)
kitchen-ec2 (1.0.0)
kitchen-inspec (0.15.0)
kitchen-nodes (0.8.0)
kitchen-vagrant (0.20.0)
test-kitchen (1.13.2, 1.10.2)

Maybe I'm mistaken, but thought chef-dk includes kitchen by default, and kitchen uses the gems bundled with chef-dk ...

When I dug into it a bit, found this in the kitchen.log

E, [2016-10-18T01:42:15.195936 #703] ERROR -- Kitchen: Class: Gem::ConflictError
E, [2016-10-18T01:42:15.195946 #703] ERROR -- Kitchen: Message: Unable to activate
 kitchen-nodes-0.8.0, because test-kitchen-1.10.2 conflicts with test-kitchen (~> 
1.13)

Wasn't sure if 1.10.2 or 1.13.2 was the version that came with chef-dk and how two ended up conflicting. I suspect kitchen-nodes causes 1.13.2 to be pulled in? But it's not really there at all?

find /opt/chefdk -type f -name 'test-kitchen*.gem'
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/cache/test-kitchen-1.10.2.gem

Checking for update

chef exec gem update test-kitchen
Updating installed gems
Nothing to update

And I can confirm I'm running the latest "stable" chefdk for Ubuntu 16.04 LTS

cat /etc/apt/sources.list.d/chef-stable.list
deb https://packages.chef.io/stable-apt xenial main

But it looks quite a bit behind

$ chef --version
Chef Development Kit Version: 0.16.28
chef-client version: 12.15.19
delivery version: master (921828facad8a8bbbd767368bfc72f19bd30e7bd)
berks version: 4.3.5
kitchen version: 1.10.2
mcascone commented 5 years ago

See #29 for more info and hints

tl;dr = use kitchen-nodes-scalp42