Forum: Ruby How to install money gem?

B26c076ba701cc678f6218d0f58cd14d?d=identicon&s=25 J. V. (jvsrvcs)
on 2013-06-05 20:38
We have a production server running Ruby 1.9.1. It runs and works
(CentOS).

I am attempting to get Apache/Ruby running on my Ubuntu box.  I  have
installed Ruby 1.9.1 just as the production server.

I listed out the gems on the production server and put them into a
script.

When I run:
  gem install money

I get:
ERROR:  Error installing money:
  money requires Ruby version >= 1.9.2.

Because the production server is 1.9.1, I simply want to mirror that for
the moment.

How did the production server with Ruby 1.9.1 get the money gem in the
first place given the error above?

How do I install the money gem on my local Ubuntu box running the exact
same version of Ruby 1.9.1.

$ruby -v
ruby 1.9.1p431 (2011-02-18 revision 30908) [x86_64-linux]

??
B8fc17d438aac61ece6a6a28f4dee931?d=identicon&s=25 Andrew Mcelroy (sophrinix)
on 2013-06-05 20:46
(Received via mailing list)
1.9.1 is not a very good version of ruby. It was considered
unstable/experimental.
If it is possible to upgrade to 1.9.2, please do.

However, if that is out of your control. have you checked to see if
there
is an older money gem that does work with ruby 1.9.1.

Last thing, this is not recommended at all, but you could pull down that
gem and remove the version conditional.
This is probably a terrible idea, but it might work.

Andrew McElroy
C5e056d4888f81842e966ff308c03416?d=identicon&s=25 Jeremy Bopp (Guest)
on 2013-06-05 21:06
(Received via mailing list)
On 06/05/2013 01:38 PM, J. V. wrote:
>   gem install money
>
> I get:
> ERROR:  Error installing money:
>   money requires Ruby version >= 1.9.2.
>
> Because the production server is 1.9.1, I simply want to mirror that for
> the moment.
>
> How did the production server with Ruby 1.9.1 get the money gem in the
> first place given the error above?

When the production server was configured to run your application, there
was a version of the money gem available that was compatible with the
Ruby version in use.  Since then, a newer version has been released that
is not compatible with that Ruby version.  The way you are trying to
install the money gem is attempting to install the latest version of
that gem, and there is your first problem.

You need to figure out what version of the money gem is in use on your
production server.  If you can figure that out (for example, x.y.z), you
can try to install that exact version on your Ubuntu system as follows:

  gem install money -v x.y.z

It's possible though that this version has been removed from
rubygems.org for various reasons, as I mentioned in reply to an earlier
thread of yours on this topic.  You'll need to talk to the maintainers
of the money gem about your options in that case.  Maybe you can get the
sources for that older version, build them into a gem yourself, and
install that.

To figure out the version of the money gem that you need, log into your
production server and run this in the same context as the application:

  gem list money

If multiple versions are listed, your application is probably using the
newest version in that list.  You should do this for each gem used by
your production server in order to replicate things as closely as
possible.  Don't assume that just because you can install the latest
version of a gem that it will be backward compatible with the version
your production server uses.

BTW, in addition to upgrading from Ruby 1.9.1 as suggested by Andrew,
you should also look into using bundler to manage gem dependencies:

  http://gembundler.com/

Using that should help prevent many of your problems with keeping your
production and development environments in sync with respect to gems.

-Jeremy
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.