lundi, septembre 14, 2009

Zlib::BufError et repository de gems down

J'ai aidé aujourd'hui quelqu'un qui n'arrivait pas à installer watir sous windows, pourtant il faisait tout comme il faut ?! (install ruby one click installer + "gem install watir")
Il avait toujours le message d'erreur suivant: Zlib::BufError buffer error
En essayant sur ma machine, qui avait déjà watir installé, je me suis rendu compte que j'avais le même problème!
C:\>gem update watir --debug
Exception `NameError' at c:/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:161 - uninitialized constant Gem::Commands::UpdateCommand
Exception `Gem::LoadError' at c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:827 - Could not find RubyGem test-unit (>= 0)

Updating installed gems
Exception `Gem::LoadError' at c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:827 - RubyGem version error: sources(0.0.1 not > 0.0.1)

Exception `Zlib::BufError' at c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:578 - buffer error
ERROR:  While executing gem ... (Zlib::BufError)
    buffer error
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `read'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `gunzip'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:165:in `fetch_path'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:219:in `load_specs'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:192:in `list'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:188:in `each'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:188:in `list'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:123:in `find_matching'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:169:in `which_to_update'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:161:in `each'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:161:in `which_to_update'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:75:in `execute'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/command.rb:257:in `invoke'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:132:in `process_args'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:102:in `run'
        c:/ruby/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run'
        c:/ruby/bin/gem:21
Je me suis douté que le serveur de gems était down même si le message d'erreur n'est pas clair du tout!
J'ai trouvé une astuce! On peut transformer sa machine en serveur de gem (mirroir) en lançant la commande:
gem server
On peut voir le résultat aux addresses suivantes:
L'autre personne a juste eu à faire:
gem install watir --source http://xxx.xxx.xxx.xxx:8808/
où xxx.xxx.xxx.xxx est l'ip de la machine où "gem server" a été lancé
Rem: je n'ai pas trouvé l'url que rubygems utilise mais je pense qu'il s'agit de http://gems.rubyforge.org/ et effectivement http://gems.rubyforge.org/gems renvoie une 403 forbidden :(
Technorati tags:

1 commentaire:

Mickael a dit…

Génial :)