The problem is that rubygems' error messages, frankly put, suck
bowling balls through garden hoses. They're basically the raised
exception without any attempt whatsoever to actually report the
conditions that led to the exception. (This, to me, defeats the
whole point of exception-handling -- exception raised at the point
of detection, exception rescued at the point of knowing what went
wrong, error message produced that explains situation -- but this is
neither here nor there.)
I would like to make RubyGems super awesome, but if the actual output
from which error messages you think "suck bowling balls through a
garden hose" are not posted, they cannot be improved.
There are 148 lines featuring "raise" in RubyGems at present, and 89
featuring "rescue". I can't psychically determine which of these
raises and resuces failed you, so to improve things I'm going to need
your help.
Remember, people volunteer to work on RubyGems. Complaining about the
imperfections of a volunteer, open source effort without offering a
helping hand does not encourage the volunteers that brought it to
where it is today to continue devoting their valuable free time
towards improving it.
What I'm guessing is this: at some point in the gems update (which
always happens no matter how many times it caches the gem metadata
-- read any number of a dozen other threads commenting on this by
now) a YAML file is being processed. And it's failing for some
reason. And this failure gets reported in a confusing fashion that
makes it look like the error is caused by a missing YAML component.
The metadata update problem has been fixed (read rubygems-developers
for details, or the ChangeLog in trunk) with a new metadata updater
that does not perform updates the same way. Read any number of my
responses to those dozen or so threads you're mentioning for the past
2-3 weeks. Release is twoish weeks off pending further bug fixes and
feedback.
As for the error, I can only believe that you're either out of date
with your RubyGems installation, or you're using an additional source
that has an indexer that is out of date. RubyGems no longer uses YAML
as its primary data source. It now uses Marshal exclusively.