-
Notifications
You must be signed in to change notification settings - Fork 170
berks upload fails with gem error on 0.10.0 #603
Comments
Hey @marcusn - do you have a Any time you do |
I have the same,
|
Hi, There is no .chefdk,this is an install with chef-dk cookbook on a vm with no gems installed. |
@julian1 If you have installed the ChefDK, you shouldn't need to @marcusn Is this the cookbook you use? And to make sure I understand - you have Chef installed on a VM and then run that cookbook to install the ChefDK, correct? We test for these load errors so something is different between our test environment and your VM. We typically install by running the |
My local ChefDK installation contains a gem "httpclient", "= 2.7.0" The exact same installation also installed
Anyway issue 599 definitely looks like a duplicate. I just skipped the ChefDK environment to use the "traditional" way (with dependency resolving in Bundler / |
@alexanderadam Thanks for pulling that info out - I agree with you, the I do agree with you that if I use the chef executable to activate the berkshelf gem, then I should see the error that @marcusn reported. I ran @marcusn If you run I don't think its an issue specific to
|
I have a similar problem, likely the same. Don't know how to work around it.
I'm stuck and would be happy to get a workaround, or a hope for a solution. Would reverting to chefdk 0.9.0 from 0.10.0 help? I've also tried
|
@tyler-ball No errors on that: vagrant@default-ubuntu-1404:~$ chef exec berks search sudo |
Oddly enough, I cannot reproduce this in a vagrant vm now (I had to rollback the production deployment). Maybe this was the result of doing an upgrade? |
@marcusn: I can confirm the same problem on 0.10.0 on the similar env.
|
I just realized that berks was not the problem. The error came from a build log, and I mistook the error as coming from berks, but it actually comes from knife: 10:51 $ knife environment from file environments/*.rb -z We use berkshelf as a library in our environment files (ruby dsl), using require 'berkshelf'. Any ideas? |
@marcusn we've got a release coming up soon - I added this to the fix list. Hopefully we can just fix the dependency conflict as part of that |
Hi, |
FYI, we can't guarantee that we will ship knife and ChefDK with compatible dependency sets, especially given the various dependencies used by different plugins. You will be better off if you can shell out to berks or write a script that uses berks and returns the data you need in a serialized form (i.e., JSON/YAML/etc.). We are in the process of updating httpclient everywhere but since we cannot guarantee that this use case won't be broken again in the future, I'm going to close this. |
What a pitty. I really thought ChefDK with Appbundler would bring consistency and a functioning "working together" instead of bringing new (or old) issues. But thank you for looking into this. |
@danielsdeleo this is a bummer for folks like myself writing knife plugins. With no guarantee of compatibility between the different top-level tools in chefdk, all plugin authors will need to shell out to other plugins. At that point you've got multiple interpreters running and you're more prone to errors given everyone now has to re-parse tool output to make decisions rather than integrating at the ruby level. |
I am getting this error when trying to use knife: |
@el-dude that appears to be the same error as matschaffer/knife-solo#517 - the 0.7.0 pre-release of knife-solo should fix it. |
After upgrade to 0.10.0 I get the following error with berks upload:
ERROR: Gem::ConflictError: Unable to activate berkshelf-4.0.1, because httpclient-2.7.0 conflicts with httpclient (~> 2.6.0)
The text was updated successfully, but these errors were encountered: