#12 √ resolved
Jeff Dean

gem update blows up

Reported by Jeff Dean | June 20th, 2008 @ 09:35 PM

I have a mysterious error: I try to run gem update and I get a bunch of GemInstaller errors:

sudo gem update -V
Updating installed gems
Exception during cache_data handling: TypeError - invalid Gem::Specification format ["1.1.1", 3, "geminstaller", #<Gem::Version "0.4.2">, Thu Jun 19 03:00:00 -0400 2008, "Automated Gem installation, activation, and much more!", #<Gem::Requirement:0x1a64b30 @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, #<Gem::Requirement:0x1a64a68 @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, "ruby", [], "geminstaller", "thewoolleyman@gmail.com", ["Chad Woolley"], "Automated Gem installation, activation, and much more!  == FEATURES:  GemInstaller provides automated installation, loading and activation of RubyGems.  It uses a simple YAML config file to:  * Automatically install the correct versions of all required gems wherever your app runs. * Automatically ensure installed gems and versions are consistent across multiple applications, machines, platforms, and environments  * Automatically activate correct versions of gems on the ruby load path when your app runs ('require_gem'/'gem') * Automatically reinstall missing dependency gems (built in to RubyGems &gt; 1.0) * Automatically detect correct platform to install for multi-platform gems (built in to RubyGems &gt; 1.0) * Print YAML for \"rogue gems\" which are not specified in the current config, to easily bootstrap your config file, or find gems that were manually installed without GemInstaller. * Allow for common configs to be reused across projects or environments by supporting multiple config files, including common config file snippets, and defaults with overrides. * Allow for dynamic selection of gems, versions, and platforms to be used based on environment vars or any other logic. * Avoid the \"works on demo, breaks on production\" syndrome * Solve world hunger, prevent the global energy crisis, and wash your socks.  == SYNOPSYS:", "    by Chad Woolley", true, "ruby"]
Cache file was: /opt/local/lib/ruby/gems/1.8/latest_source_cache
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:271:in `_load'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:190:in `load'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:190:in `read_cache_data'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:120:in `cache_data'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:224:in `refresh'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:223:in `each'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:223:in `refresh'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:41:in `cache'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:78:in `search'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:75:in `execute'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/command.rb:136:in `invoke'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:104:in `process_args'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:74:in `run'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:39:in `run'
	/opt/local/bin/gem:24
Missing metadata for 3318 gems
Bulk updating Gem source index for: http://gems.rubyforge.org/
ERROR:  Unable to fetch Marshal.4.8.Z: invalid Gem::Specification format ["1.1.1", 3, "geminstaller", #<Gem::Version "0.4.2">, Thu Jun 19 03:00:00 -0400 2008, "Automated Gem installation, activation, and much more!", #<Gem::Requirement:0x4d4fc84 @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, #<Gem::Requirement:0x4d4fbbc @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, "ruby", [], "geminstaller", "thewoolleyman@gmail.com", ["Chad Woolley"], "Automated Gem installation, activation, and much more!  == FEATURES:  GemInstaller provides automated installation, loading and activation of RubyGems.  It uses a simple YAML config file to:  * Automatically install the correct versions of all required gems wherever your app runs. * Automatically ensure installed gems and versions are consistent across multiple applications, machines, platforms, and environments  * Automatically activate correct versions of gems on the ruby load path when your app runs ('require_gem'/'gem') * Automatically reinstall missing dependency gems (built in to RubyGems &gt; 1.0) * Automatically detect correct platform to install for multi-platform gems (built in to RubyGems &gt; 1.0) * Print YAML for \"rogue gems\" which are not specified in the current config, to easily bootstrap your config file, or find gems that were manually installed without GemInstaller. * Allow for common configs to be reused across projects or environments by supporting multiple config files, including common config file snippets, and defaults with overrides. * Allow for dynamic selection of gems, versions, and platforms to be used based on environment vars or any other logic. * Avoid the \"works on demo, breaks on production\" syndrome * Solve world hunger, prevent the global energy crisis, and wash your socks.  == SYNOPSYS:", "    by Chad Woolley", true, "ruby"]
ERROR:  Unable to fetch Marshal.4.8: invalid Gem::Specification format ["1.1.1", 3, "geminstaller", #<Gem::Version "0.4.2">, Thu Jun 19 03:00:00 -0400 2008, "Automated Gem installation, activation, and much more!", #<Gem::Requirement:0x3198b94 @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, #<Gem::Requirement:0x3198900 @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, "ruby", [], "geminstaller", "thewoolleyman@gmail.com", ["Chad Woolley"], "Automated Gem installation, activation, and much more!  == FEATURES:  GemInstaller provides automated installation, loading and activation of RubyGems.  It uses a simple YAML config file to:  * Automatically install the correct versions of all required gems wherever your app runs. * Automatically ensure installed gems and versions are consistent across multiple applications, machines, platforms, and environments  * Automatically activate correct versions of gems on the ruby load path when your app runs ('require_gem'/'gem') * Automatically reinstall missing dependency gems (built in to RubyGems &gt; 1.0) * Automatically detect correct platform to install for multi-platform gems (built in to RubyGems &gt; 1.0) * Print YAML for \"rogue gems\" which are not specified in the current config, to easily bootstrap your config file, or find gems that were manually installed without GemInstaller. * Allow for common configs to be reused across projects or environments by supporting multiple config files, including common config file snippets, and defaults with overrides. * Allow for dynamic selection of gems, versions, and platforms to be used based on environment vars or any other logic. * Avoid the \"works on demo, breaks on production\" syndrome * Solve world hunger, prevent the global energy crisis, and wash your socks.  == SYNOPSYS:", "    by Chad Woolley", true, "ruby"]
Updating ParseTree
Exception during cache_data handling: TypeError - invalid Gem::Specification format ["1.1.1", 3, "geminstaller", #<Gem::Version "0.4.2">, Thu Jun 19 03:00:00 -0400 2008, "Automated Gem installation, activation, and much more!", #<Gem::Requirement:0xf4201d0 @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, #<Gem::Requirement:0xf4200cc @requirements=[[">=", #<Gem::Version "0">]], @version=nil>, "ruby", [], "geminstaller", "thewoolleyman@gmail.com", ["Chad Woolley"], "Automated Gem installation, activation, and much more!  == FEATURES:  GemInstaller provides automated installation, loading and activation of RubyGems.  It uses a simple YAML config file to:  * Automatically install the correct versions of all required gems wherever your app runs. * Automatically ensure installed gems and versions are consistent across multiple applications, machines, platforms, and environments  * Automatically activate correct versions of gems on the ruby load path when your app runs ('require_gem'/'gem') * Automatically reinstall missing dependency gems (built in to RubyGems &gt; 1.0) * Automatically detect correct platform to install for multi-platform gems (built in to RubyGems &gt; 1.0) * Print YAML for \"rogue gems\" which are not specified in the current config, to easily bootstrap your config file, or find gems that were manually installed without GemInstaller. * Allow for common configs to be reused across projects or environments by supporting multiple config files, including common config file snippets, and defaults with overrides. * Allow for dynamic selection of gems, versions, and platforms to be used based on environment vars or any other logic. * Avoid the \"works on demo, breaks on production\" syndrome * Solve world hunger, prevent the global energy crisis, and wash your socks.  == SYNOPSYS:", "    by Chad Woolley", true, "ruby"]
Cache file was: /opt/local/lib/ruby/gems/1.8/source_cache
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:271:in `_load'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:190:in `load'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:190:in `read_cache_data'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:183:in `read_all_cache_data'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:276:in `search_with_source'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_info_cache.rb:86:in `search_with_source'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:77:in `find_gems_with_sources'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:154:in `find_spec_by_name_and_version'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:173:in `install'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:86:in `execute'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:82:in `each'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:82:in `execute'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/command.rb:136:in `invoke'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:104:in `process_args'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:74:in `run'
	/opt/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:39:in `run'
	/opt/local/bin/gem:24
ERROR:  While executing gem ... (Gem::GemNotFoundException)
    could not find ParseTree locally or in a repository

However, I don't have GemInstaller installed:

aasm (0.0.2)
action_profiler (1.0.0)
actionmailer (2.1.0)
actionpack (2.1.0)
actionwebservice (1.2.6)
activemerchant (1.3.2)
activerecord (2.1.0)
activeresource (2.1.0)
activesupport (2.1.0)
annotate-models (1.0.2)
arrayfields (4.5.0)
attributes (5.0.1)
bj (1.0.1)
builder (2.1.2)
capistrano (2.4.0)
capistrano-ext (1.2.0)
cgi_multipart_eof_fix (2.5.0)
cheat (1.2.1)
chronic (0.2.3)
color-tools (1.3.0)
columnize (0.1)
daemons (1.0.9)
desert (0.2.1)
facets (2.4.1)
fastercsv (1.2.3)
fastthread (1.0.1)
ferret (0.11.6)
gem_plugin (0.2.3)
highline (1.4.0)
hoe (1.5.3)
hpricot (0.6)
htmlentities (4.0.0)
image_science (1.1.3)
lightrail (0.5.0)
linecache (0.42)
main (2.8.0)
mechanize (0.6.11)
mime-types (1.15)
mislav-will_paginate (2.3.2)
money (1.7.1)
mongrel (1.1.1)
mongrel_cluster (1.0.5)
needle (1.3.0)
net-scp (1.0.1)
net-sftp (2.0.1)
net-ssh (2.0.2)
net-ssh-gateway (1.0.0)
newgem (0.23.1)
orderedhash (0.0.4)
packet (0.1.5)
ParseTree (2.0.2)
ParseTreeReloaded (0.0.1)
pdf-writer (1.1.3)
piston (1.3.3)
plugin_dependencies (0.1.1)
radiant (0.6.4)
rails (2.1.0)
rails_analyzer_tools (1.4.0)
railsmachine (1.0.0)
rake (0.8.1)
RedCloth (3.0.4)
rflickr (2006.02.01)
rspec (1.1.3)
rubigen (1.3.1)
ruby-debug (0.10.1)
ruby-debug-base (0.10.1)
ruby-postgres (0.7.1.2006.04.06)
ruby2ruby (1.1.7)
rubyforge (1.0.0)
rubygems-update (1.1.0)
RubyInline (3.6.5)
RubyInlineAcceleration (0.0.1)
sake (1.0.11)
scrubyt (0.3.4)
sources (0.0.1)
sqlite (2.0.1)
sqlite-ruby (2.2.3)
syntax (1.0.0)
SyslogLogger (1.4.0)
systemu (1.2.0)
transaction-simple (1.4.0)
tzinfo (0.3.5)
uuid (1.0.4)
webrat (0.2.0)
will_paginate (2.2.2)

I grepped and tried to locate GemInstaller on my machine, but I couldn't. Looks like the RubyForge spec is wrong??

Comments and changes to this ticket

  • Jeff Dean

    Jeff Dean June 20th, 2008 @ 10:19 PM

    Looks like this relates to the gem update - may not be your problem at all. Could your gem be the first in the index (due to the capital first letter)?

  • Jeff Dean

    Jeff Dean June 22nd, 2008 @ 12:43 PM

    I confirmed that this had nothing to do with GemInstaller - I updated to rubygems 1.2.0 and all is well. Sorry for that.

  • Chad Woolley

    Chad Woolley June 22nd, 2008 @ 02:39 PM

    • → State changed from “new” to “resolved”

    Hi Jeff,

    Good, thanks for the report. I didn't look long enough to understand what happened. Any details you can provide are welcome, so I'll recognize the problem if I see it again.

    Thanks,

    -- Chad

  • Jeff Dean

    Jeff Dean June 22nd, 2008 @ 03:00 PM

    I believe what happened is that RubyForge upated their gem indexes to

    work with 1.2.0. These new indexes may have been backward compatible

    with 1.1.1, but I had 1.1.0 (or some previous version).

    When I tried to gem update, my local machine read through the indexes

    and tried to parse them but couldn't because of the version

    incompatibility. GemInstaller was the first gemspec in the index

    (maybe because there are no gems with a letter < capital G), or at

    least the first one that triggered the error - so I thought it was an

    issue with GemInstaller.

    This issue prevented me from running gem update --system so I manually

    downloaded and ran the gem updater with these steps:

    wget http://rubyforge.org/frs/downloa...
    sudo gem install rubygems-update-1.2.0.gem
    cd /opt/local/lib/ruby/gems/1.8/gems/rubygems-update-1.2.0 # => I run  
    from macports
    sudo ruby setup.rb
    sudo gem update -v

    Jeff

    On Jun 22, 2008, at 5:39 PM, Lighthouse wrote:

  • Chad Woolley

    Chad Woolley June 22nd, 2008 @ 03:07 PM

    Thanks for the info Jeff. However, I'm not sure why you say the GemInstaller gem has a capital letter, it doesn't for me:

    chadmac:capistrano-ext-1.2.0 woolley$ gem list geminstaller --remote --source=http://gems.rubyforge.org

    *** REMOTE GEMS ***

    geminstaller (0.4.2)

  • Chad Woolley

    Chad Woolley June 24th, 2008 @ 01:45 PM

    This was apparently because I built the GemInstaller 0.4.2 gem with a pre-1.2.0 release of RubyGems.

    I have since re-released GemInstaller 0.4.3 built with RubyGems 1.2.0 official, and deleted the 0.4.2 release off of RubyForge. I hope this fixes everything!

Please Login or create a free account to add a new comment.

You can update this ticket by sending an email to from your email client. (help)

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

GemInstaller

http://geminstaller.rubyforge.org

People watching this ticket