Forum: Ruby 2 apps require different version same GEM

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
715fe84ca0710aa8dfa5650a044cde91?d=identicon&s=25 John Honovich (jr1734)
on 2008-02-13 02:01
I have 2 apps that both require RubyInline (specifically ScrubyT and
freeimage).

ScrubyT seems to require 3.6.3 RubyInline while freeimage requires
3.6.6.

I just installed RubyInline and now ScrubyT is throwing an error.
Specifically, ScrubyT reports: "`activate': can't activate RubyInline (=
3.6.3), already activated RubyInline-3.6.6] (Gem::Exception)"


I have read that Ruby Gems allows multiple versions of a gem to be used
simultaneously but unfortunately

The RubyGems user guide says to specify specific version numbers in the
require statement (such as '= 3.6.3').

I went to the scrubyt.rb file with the intent to add this in the require
statement in RubyInline.  Unfortunately, it seems RubyInline is being
required by a gem that ScrubyT is requiring.

Do I search for that gem and add this clause?  Is there another way of
accomplishing this?

Thanks,

John
1c1e3bdfe006a22214102fcd6434a012?d=identicon&s=25 Daniel Sheppard (Guest)
on 2008-02-13 03:57
(Received via mailing list)
> I went to the scrubyt.rb file with the intent to add this in
> the require
> statement in RubyInline.  Unfortunately, it seems RubyInline is being
> required by a gem that ScrubyT is requiring.

If you require rubyinline with a version before the other requires, the
deep require of rubyinline should be a no-op.
5a837592409354297424994e8d62f722?d=identicon&s=25 Ryan Davis (Guest)
on 2008-02-13 09:15
(Received via mailing list)
On Feb 12, 2008, at 5:01 PM, John Honovich wrote:

> ScrubyT seems to require 3.6.3 RubyInline while freeimage requires
> 3.6.6.
>
> I just installed RubyInline and now ScrubyT is throwing an error.
> Specifically, ScrubyT reports: "`activate': can't activate
> RubyInline (=
> 3.6.3), already activated RubyInline-3.6.6] (Gem::Exception)"

Start by beating the author of scrubyt for specifying == instead of >=.

Next, switch your version specifiers from require to gem... whatever
rubygems doco you read is old and require with a version specifier is
deprecated:

   gem 'inline', '>= 3.6.6'

Better... remove all version specifiers... there isn't anything across
those versions that requires locking in the version.

Follow that up with some cocoa.
Fcd6b7931defde95511c239c05f3f962?d=identicon&s=25 Henrik Cederblad (hced)
on 2010-12-11 04:46
I have the same dependency problems pretty often and they really put a
spanner in the works.

`activate': can't activate RubyInline (= 3.7.0, runtime) for
["tomdoc-0.1.0"], already activated RubyInline-3.8.6 for
["ParseTree-3.0.5", "tomdoc-0.1.0"] (Gem::LoadError)

What do people do in these situations? Is it possible to activate
specific gem version for specific gem(s) , or does that make no sense?
This topic is locked and can not be replied to.