Can't Update RubyGems
Answer :
There is no need to take such drastic steps as completely rebuilding Ruby, reinstalling Rubygems from scratch or installing a version manager to solve this problem. There is simply a dependency cycle introduced by the release of hoe 2.3.0:
rubygems-update 1.3.5 requires (among other things) hoe-seattlerb
hoe-seattlerb requires hoe >= 2.3.0
hoe >= 2.3.0 requires rubygems >= 1.3.1
I wrote the blog post linked to by zipizap. To recap:
- If you've already tried to update, uninstall the latest rubygems-update first:
sudo gem uninstall rubygems-update -v 1.3.5
- Update to 1.3.0:
sudo gem install rubygems-update -v 1.3.0
sudo update_rubygems
- Then update to latest:
sudo gem update --system
With the release of Rubygems 1.3.6, it looks like this problem may be gone. From the release notes:
- Development deps are no longer added to rubygems-update gem so older versions can update sucessfully.
Oi - I feel your pain. I'll first ask the obvious; Have you been executing the commands with sudo? So you'll use sudo gem install rubygems-update and sudo update_rubygems.
If that doesn't work, download gems source again and rebuild from scratch (may want to erase prior source download, etc). You may want to read HiveLogic article on installing Ruby, RubyGems, etc on Mac OS Snow Leopard.
If that doesnt' work... :) I might do the drastic and rebuild Ruby as well.
Similar problem, different solution
$ sudo gem install rubygems-update update_rubygems Updating metadata for 1 gems from gems.rubyforge.org/ . complete ERROR: Error installing rubygems-update: rubygems-update requires builder (>= 0) ERROR: could not find update_rubygems locally or in a repository
and
$ sudo gem update --system ERROR: While executing gem ... (RuntimeError) gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get.
My solution: Go to http://docs.rubygems.org/read/chapter/3#page13
and install manually, i.e. get the rubygems.... tgz and install it.
Hope it helps someone.
Comments
Post a Comment