[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Confusion about gems and non-gems working together.

Lloyd Zusman

6/17/2005 10:18:00 PM

3 Answers

Chad Fowler

6/18/2005 8:11:00 PM

0

Hi Lloyd!

On 6/17/05, Lloyd Zusman <ljz@asfast.com> wrote:
> Ever since I started installing packages via the gems mechanism, I have
> kept running into problems that few others seemed to have (or at least
> mention here). More often than I would like, a gem installation would
> either fail outright, or else it would get installed but not work
> properly, yielding errors that seemed to be non-reproducible by others.
>
> I now think that I might have figured out what is going on for me:
>
> In all the cases where I had these problems, I had non-gem installs of
> earlier versions of the packages. In many cases, it seems like code
> inside of files associated with these earlier versions would get
> executed instead of the code that the newer gem would use.
>
> I have a standard ruby installation with no special path settings, and
> yet, I still am getting these unwanted interactions between certain gems
> and their older, non-gem counterparts.
>
> Has anyone else experienced anything like this? If so, how did you
> handle it?
>

I haven't, but I don't use non-gem libs much anymore. Could you give a specific
example? I think it might be instructive. As long as the gem version
of the library
is before the non-gem version in the load path (which it should be), you should
get the gem version of the lib. Since that's obviously not the way
it's working for you, it would be great to hear some specifics.

> I presume that when I install a gem, I should completely uninstall any
> older, non-gem versions of the same package. What is the accepted way
> to uninstall a package? Do I just go into the ruby tree and delete all
> files and directories associated with the non-gem? If so, how can I
> find out what is the exhaustive list of files and directories to remove
> for a given package?
>

That's part of the problem pre-gems. There's no nice, repeatable way
to do this. If you've got the original tar file lying around, you can
look at it's contents and remove files that seem to have been
installed by it. Even then, you'll probably want to use a checksum of
some sort just in case installations of later libs over wrote files of
the same name (which you might still be depending on).

> This brings up a suggestion: could the gem installer check for
> previously installed non-gem versions of the package in question, and
> then ask the user if he/she wants to optionally delete them as part of
> the gem install? Something like that would be massively useful, IMHO.
>

I'll add it to our list. It would be hard to do cleanly and reliably,
but as an optional user-verifiable setting, it wouldn't be too
terribly evil.


>
> --
> Lloyd Zusman
> ljz@asfast.com
> God bless you.
>
>
>


--

Chad Fowler
http://chad...
http://rubyc...
http://ruby...
http://rubygems.rub... (over 300,000 gems served!)


Jim Weirich

6/19/2005 2:09:00 AM

0

On Saturday 18 June 2005 04:10 pm, Chad Fowler wrote:
> > In all the cases where I had these problems, I had non-gem installs of
> > earlier versions of the packages. In many cases, it seems like code
> > inside of files associated with these earlier versions would get
> > executed instead of the code that the newer gem would use.
> > [...]
> > Has anyone else experienced anything like this? If so, how did you
> > handle it?
>
> I haven't, but I don't use non-gem libs much anymore. [...]
> As long as the gem version of the library
> is before the non-gem version in the load path (which it should be), you
> should get the gem version of the lib.

If no explicit require_gem is done on the library, then the non-gem version
will take precedence. If there is no non-gem version, or an explicit
require_gem has requested the library, then the gem version will be used.

--
-- Jim Weirich jim@weirichhouse.org http://onest...
-----------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)


Lloyd Zusman

6/20/2005 11:23:00 PM

0