Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

gem update blows up

#12

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

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

State: resolved
Milestone: none
Assigned to: Chad Woolley Chad Woolley

Activity

  1. Jeff Dean
    Jeff Dean

    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)?

    June 20th, 2008 @ 10:19 PM

  2. Jeff Dean
    Jeff Dean

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

    June 22nd, 2008 @ 12:43 PM

  3. Chad Woolley
    Chad Woolley
    • 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

    June 22nd, 2008 @ 02:39 PM

  4. Jeff Dean
    Jeff Dean

    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/download.php/38645/rubygems-update-1.2.0.gem
    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:

    June 22nd, 2008 @ 03:00 PM

  5. Chad Woolley
    Chad Woolley

    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)

    June 22nd, 2008 @ 03:07 PM

  6. Chad Woolley
    Chad Woolley

    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!

    June 24th, 2008 @ 01:45 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.