incubator-deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "" <>
Date Tue, 08 Nov 2011 09:23:49 GMT
Hi Tom,

OK, we've gotten to the bottom of this. First of all, thanks for taking
the time to report the issue - it will definitely help us to make the
deltacloud installation process better. There are a number of ways in
which this issue can be addressed and we are evaluating those before
making a decision. The fix should make it's way into the next Deltacloud
release. I'll likely also be updating the website with a temporary
work-around for rhel 6.1 soon. A more detailed description of the issue
follows below,


================description of the problem:=========================

The issue is obviously a versioning problem... the deltacloud-core gem
itself requires the 'net-ssh' gem (we use that for the 'run-on-instance'
feature where clients can run an action on a running instance Our .gemspec
requirement for net-ssh is:

  s.add_dependency('net-ssh', '>= 2.0.0')

Meaning, any version of net-ssh newer than version 2 (currently the
latest version @rubygems is 2.2.1

Deltacloud also requires the 'fog' gem, which we use to talk to the
terremark vCloud Express and google-storage cloud API. When you install
a gem, like fog, you also pull in all the gems that it requires. In this
case, fog has the requirement

  s.add_dependency('net-ssh', '~>2.1.4')

which means, any version greater than or equal to, 'in the last digit'
... i.e. '~>' here will match 2.1.4 ... up to 2.1.x but not 2.2.x
( Thus, we have a versioning
conflict... our own gemspec dependency will pull in "net-ssh >= 2.0.0",
basically meaning 'the latest'... 2.2.1. However this doesn't satisfy
the fog dependency of "2.1.4 <= net-ssh < 2.2.0".

Versions of 'rubygems' after 1.6.0
introduced a conflict resolution mechanism, whereby the 'least common
denominator' is used in such cases. In this case version 2.1.4 of
net-ssh is used, thus satisfying both .gemspec constraints. However rhel
is using rubygems version 1.3.7 (i.e. before the conflict resolution
mechanism was introduced), which is why the gem installer reports:

gem install deltacloud-core
ERROR:  Error installing deltacloud-core:
    fog requires net-ssh (~>  2.1.4, runtime)

Thanks again to Tom Wlodek for reporting this

On 04/11/11 19:42, Tom Wlodek wrote:
> On 11/04/2011 01:14 PM, wrote:
>> Hi Tom,
>> I just spent some time looking at this:
>> I tried to recreate this but was not able to (though I can see what the
>> problem is with the net-ssh version.. more below). Can you tell us what
>> OS/version you are using (I tried to recreate with a vanilla fedora 15
>> intallation).
> Hi, thanks for looking into that. As for the OS version:
>  cat /etc/redhat-release
> Red Hat Enterprise Linux Workstation release 6.1 (Santiago)
> Tom Wlodek
>> Ok, the deltacloud gem pulls in the fog gem. It seems fog introduced the
>> dependency ~>  2.1.4 since fog version 0.10.0. When you install
>> deltacloud-core, the .gemspec should ensure you get version 2.1.4 of
>> net-ssh as required by fog. One way you may have ended up with version
>> 2.2.1 (which is in fact the latest), is if you already had it (e.g. due
>> to some unrelated installation/dependency).
>>> but when I do
>>>   gem list
>>> I get
>>> ...
>>> net-ssh (2.2.1)
>>> so I have net-ssh installed.
>>> Any ideas?
>> Just fyi, you could have removed the net-ssh 2.2.1 and explicitly
>> installed the version that was required:
>> gem uninstall net-ssh
>> gem install net-ssh -v 2.1.4
>> If you had then run gem install deltacloud-core it should have run fine.
>> But this is besides the point, we want the install to be as painless as
>> possible so any info you can provide about your setup will help me to
>> investigate further,
>> thanks for reporting the issue, marios
>>> Tom W
>>> |

View raw message