I'm having difficulties updating RubyGems from version 1.1.1 to newest. I've tried the following:
gem upda开发者_如何学Cte
Result:
Updating installed gems
Bulk updating Gem source index for: http://gems.rubyforge.org/ Nothing to update
and
gem install rubygems-update
Result:
Bulk updating Gem source index for: http://gems.rubyforge.org/
Bulk updating Gem source index for: http://gems.rubyforge.org/ ERROR: Error installing rubygems-update: rubygems-update requires builder (>= 0)
and
gem install rubygems-update update_rubygems
Result:
Bulk updating Gem source index for: http://gems.rubyforge.org/
Bulk updating Gem source index for: http://gems.rubyforge.org/ ERROR: Error installing rubygems-update: rubygems-update requires builder (>= 0) ERROR: could not find update_rubygems locally or in a repository
Then I checked, as suggested by theIV on a similar question, whether I had http://gems.rubyforge.org/ in my remote sources. Here's the gems environment:
RubyGems Environment:
- RUBYGEMS VERSION: 1.1.1 - RUBY VERSION: 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8 - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby - RUBYGEMS PLATFORMS: - ruby - universal-darwin-9 - GEM PATHS: - /Library/Ruby/Gems/1.8 - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://gems.rubyforge.org
So, yeah, any ideas?
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.
Any luck with gem install builder
? That looks to be what you need to get rubygems-update to install.
I ran into a similar issue, and I was able to upgrade by doing this: sudo gem update --system
The problem seems to be detected and reported as a dependecy-cycle: some new-version-dependencies are needed in order to install the new-gems-version... yes, it is a mess.The recomended solution I've seen is to make the upgrade in a step-by-step intermediate version fashion, in order to make the upgrade transition smooth, with small version-gaps. Read it in this article, which explains it very well: link text
After reading it and trying a couple of times, I've seen that it was still very fuzzy/complicated.
So I went for another solution, which installs more then necesary but is more straighforward:
Install a more recent version of ruby + irb + rdoc + gem (side by side with old version already existing)
Now install the gem "Ruby Version Manager" (a no pain in debian/ubuntu, it can compile latest ruby version) link text
Use RVM to install the final and latest ruby version (side-by-side again) and maintain it updated.
(you could now use RVM to uninstall the older versions of ruby/gems in your system, and only keept the latest ruby version)
If you need it for a production system, RVM is already seen as mature enough to maintain ruby/gems updated with newer versions.
Hope it helps some starter like me to "get toubles out of the way"
NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no rubygems-update installed. You will need to use the following instructions if you see Nothing to update. If you have an older version of RubyGems installed, then you can still do it in two steps:
$ gem install rubygems-update # again, might need to be admin/root
$ update_rubygems # ... here too
Re-build it from the sources.
精彩评论