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] ??
on 2013-06-05 20:38
on 2013-06-05 20:46
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
on 2013-06-05 21:06
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