2007-12-20: RubyGems 1.0.0 is out, including mswin32 fixes. There is a problem specific on how gem_plugin search for gems and their platforms, that makes
mongrel_service gem fail.
The recommended update procedure will be:
- Update RubyGems using
gem update --system
- Go into your
lib/ruby/gems/1.8/gemsand rename mongrel_service-0.3.3-mswin32 to mongrel_service-0.3.3-x86-mswin32 (note the x86 addition).
- Star mongrel_rails normally.
The problem is related to
gem_plugin and how it determines de platform path. Also, reinstalling the gem shows other problems with dependencies trying to get compiled. I’ll solve them and do a proper release later today.
Back to the informative post
It seems a lot of folks are upgrading their Rails installation. For the Windows-only guys out there: please wait.
I just hope all the Ruby folks on Windows don’t get mad at me1.
My fingers start hurting replying mails and closing duplicate tickets about this, so, making a short list of it:
- Rails 2.0.x forces you update to RubyGems 0.9.5
- RubyGems 0.9.5 is broken for platforms that provides pre-built gems.
- Mongrel provides a pre-built gem for those who don’t have a compiler under Windows (90% of the cases).
- Even you get Rails installed, it wouldn’t boot, since it couldn’t get Mongrel running.
- Folks start yelling at ruby-talk, mongrel-users and other places about this.
Please, hold your anxiety a bit
- Rails guys did fix this (changeset 8438)
- A new Rails release (2.0.3 maybe?) is comming soon.
- A new RubyGems version that fix this scenario is comming soon too (1.0)
- Mongrel and all the gems related to it (mongrel, mongrel_service and fastthread) are being fixed to solve further issues with this bad behavior
Why this chaos?
Chaos is everywhere, and some times is good. 😉
But honestly, this global break is a necessity: upcoming version of Ruby (1.9.1) will ship with RubyGems bundled. Part of this decision required automatic handling of platforms — remember the 6 or more listed gems for platforms you don’t care about? — the same is gone for good.
Automatic platform handling to cover all the platforms, OS and compilers Ruby run is complex. Some gems developers (including myself) were using the wrong platform to identify native pre-built gems. This also covers others gems like sqlite, mysql and ruby-debug to name a few.
This should have been fixed before, but 9K gems rubyforge provides is kind of difficult to track which one will break, don’t you think?
Anyway, just a simple summary of the situation.
1 Is not all my fault, ok?