views:

3651

answers:

8

Hi!

I'm having difficulties updating RubyGems from version 1.1.1 to newest. I've tried the following:

gem update

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 resources. 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?

+1  A: 

Re-build it from the sources.

Azeem.Butt
Any pointers on how to proceed with this?
Orolin
Are you serious? http://docs.rubygems.org/read/chapter/3#page13
Azeem.Butt
+1  A: 

Any luck with gem install builder? That looks to be what you need to get rubygems-update to install.

MattMcKnight
Tried this, result: ERROR: could not find builder locally or in a repository
Orolin
+3  A: 

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.

Joe
Thanks dude:) Yup, i ran all the commands with sudo. Gonna read the article you're referring to... Will probably end up rebuilding all of it eventually.
Orolin
Glad to hear it - good luck with the rebuild. Since that's the case... would you mind marking my response as an answer please?
Joe
A: 

I ran into a similar issue, and I was able to upgrade by doing this: sudo gem update --system

Lau Lau Labs
A: 

Did you install the rubygems?

xman
+1  A: 

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"

zipizap
+2  A: 

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:

  1. If you've already tried to update, uninstall the latest rubygems-update first: sudo gem uninstall rubygems-update -v 1.3.5
  2. Update to 1.3.0: sudo gem install rubygems-update -v 1.3.0
  3. sudo update_rubygems
  4. 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.
Steve Madsen
+3  A: 

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.

Ruben
Yup - it did help! Thanks!
talonx