GemInstaller fails when listing remote prerelease gems
Reported by Chad Woolley | February 8th, 2010 @ 10:34 AM
Our production environment depends on Rails 2.2.2, a version that's old old old, and that we've been installing and using for months.
Today, our scripts tried to use Geminstaller to install required gems, including Rails 2.2.2, as listed in our geminstaller.yml, on a newly provisioned box in EC2.
When geminstaller lists the available remote versions of Rails the gem list command does include version 3.0.0.beta, through no action or change on our part.
Geminstaller attempts to parse the version string, finds it unappealing, and explodes. The app server follows suit.
Comments and changes to this ticket
I suspect this is due to an old rubygems version which does not support prerelease gems.
Please provide output of the following:
- gem env
- geminstaller -gall -rall (from project root)
- output of manually running rubygems command that failed (should be output by -gall -rall)
- State changed from hold to invalid
As I suspected, this was due to an old version of RubyGems which does not support prerelease gems (it was added in a 1.3.x minor release, which is kinda wack, but I digress).
Anyway, if your RubyGems is non-prerelease-supporting, you can reproduce the error in IRB thusly:
require 'rubygems'; Gem::Version.new('1.a')
I just tested against the new RubyGems 1.3.6, and AFAIK GemInstaller is working fine against it. But you should still switch to Bundler.