Thermatix
Thermatix

Reputation: 2929

issues with Installing gems on chef

I am trying to install Berkshelf however it whines that a gem called retryable isn't installed, so I do the following

gem_package 'retryable'

gem_package 'berkshelf

so why does this keep happening in the chef logs:

    Unable to resolve dependencies: berkshelf requires retryable (~> 1.3.3)
---- End output of C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.2" ----
Ran C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.2" returned 1

Even though I can clearly see that retryable is being installed right here:

[2015-01-14T17:55:00+00:00] INFO: Processing gem_package[retryable] action install (go-agent::install line 14)
[2015-01-14T17:55:02+00:00] INFO: Processing gem_package[berkshelf] action install (go-agent::install line 16

Whats going on?

EDIT: After forcing it to install the version I want (v 2.0.0 of retryable, as ridley needs that one as well as berkshelf) I now get this error:

[2015-01-15T11:11:20+00:00] FATAL: Mixlib::ShellOut::CommandTimeout: gem_package[berkshelf] (go-agent::install line 19) had an error: Mixlib::ShellOut::CommandTimeout: command timed out:
---- Begin output of C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.3" ----
STDOUT: 
STDERR: 
---- End output of C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.3" ----

Upvotes: 0

Views: 281

Answers (1)

coderanger
coderanger

Reputation: 54181

The latest version of retryable is 2.0.0, so that is the version you are installing via the first gem_package. You are using gem_package but you don't have an installation of Ruby so it is failing back to Chef's (which it really shouldn't) and I'm guessing there is some kind of dependency conflict happening. Try forcing retryable to version 1.3.6, the newest version compatible with Berkshelf.

Upvotes: 1

Related Questions