【问题标题】:strange bundler error: tar_input.rb:49:in `initialize': not in gzip format (Zlib::GzipFile::Error) on bundle pack奇怪的打包程序错误:tar_input.rb:49:in `initialize': not in gzip format (Zlib::GzipFile::Error) on bundle pack
【发布时间】:2010-03-22 18:12:21
【问题描述】:

我在运行时遇到一个奇怪的捆绑程序错误

bundle pack

使用捆绑器 0.9.12

有什么想法吗? (有关格式更好的代码,请参阅 paste:http://pastie.org/881328

/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:49:in `initialize': not in gzip format (Zlib::GzipFile::Error)
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:49:in `new'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:49:in `initialize'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_reader.rb:63:in `each'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_reader.rb:54:in `loop'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_reader.rb:54:in `each'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:32:in `initialize'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:17:in `new'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:17:in `open'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package.rb:55:in `open'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/format.rb:63:in `from_io'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/format.rb:51:in `from_file_by_path'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/format.rb:50:in `open'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/format.rb:50:in `from_file_by_path'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/source.rb:115:in `specs'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/source.rb:114:in `each'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/source.rb:114:in `specs'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/index.rb:32:in `from_cached_specs'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/index.rb:23:in `application_cached_gems'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/index.rb:15:in `cached_gems'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/index.rb:5:in `build'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/index.rb:14:in `cached_gems'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/environment.rb:15:in `index'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/index.rb:5:in `build'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/environment.rb:13:in `index'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/runtime.rb:86:in `specs'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/runtime.rb:130:in `details'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/runtime.rb:119:in `write_yml_lock'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/runtime.rb:65:in `lock'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/cli.rb:89:in `lock'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/cli.rb:131:in `package'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor/task.rb:33:in `send'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor/task.rb:33:in `run'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor/invocation.rb:109
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor/invocation.rb:116:in `call'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor/invocation.rb:116:in `invoke'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor.rb:137:in `start'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor/base.rb:378:in `start'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/lib/bundler/vendor/thor.rb:124:in `start'
  from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/bundler-0.9.12/bin/bundle:11
  from /opt/REE/bin/bundle:19:in `load'
  from /opt/REE/bin/bundle:19

【问题讨论】:

  • 也发生在我身上,在我的情况下难以捉摸,重复运行可能会成功启动应用程序

标签: rubygems ruby-on-rails-3 gem bundler


【解决方案1】:

我在使用 bundle upate (bundle 1.0) 时遇到了类似的问题。 我正在为我的应用程序使用带有 gemset 的 rvm。

解决办法是删除:

~/.rvm/gems/ree-1.8.7-2010.02@gemset-name/cache

【讨论】:

  • 呃,对我没用。我真的希望它会。还在研究这里……
  • 这对我有用。值得注意的是,在这样做之后,我必须使用 bundler 在我的所有应用程序和 gem 上运行 bundle install。
  • 对于任何来这里的 Google 员工:这也可能意味着您的 gem 源已关闭或无法访问。当我试图从我公司的仓库中提取 gem 而不连接到 VPN 时,我遇到了这个问题。
【解决方案2】:

回答我自己的问题:

解决方法是从

中删除所有内容
vendor/cache

之后就成功了。

显然是捆绑程序错误。

【讨论】:

    【解决方案3】:

    据称,Bundler 1.0.x 修复了原始问题,但我仍然收到相同的错误消息(使用 1.0.3)。我删除了所有 cache 文件夹,包括在 RVM 目录中,如此处其他答案中所述 - 没有骰子。

    事实证明,如果 Bundler 无法解析您的某个来源(即$ gem sources 返回的来源),您也会收到此错误。即使您列出了多个来源,它也会对所有来源进行 ping 操作,并且如果 任何 来源是错误的,它也会崩溃并出现这个无法描述的 'initialize': not in gzip format 错误。

    this ticket 中所述,这可能是因为无法访问 VPM 或本地网络源,但实际上我遇到了问题,因为我公司的防火墙阻止了 ruby​​gems.org。

    只需将此答案作为另一个可能的解决方案提交,以清除此模糊的错误消息。

    【讨论】:

      【解决方案4】:

      我刚刚遇到了 bundler 0.9.26 和 rails3 beta4。推出

      bundle package
      

      现在可以了。但如果我删除供应商/缓存问题仍然存在。

      【讨论】:

        【解决方案5】:

        有同样的东西,删除 /bundler_gems/cache

        【讨论】:

          【解决方案6】:

          即使我运行的是 Bundler 1.0.0,我仍然遇到此错误。 bundle install 无效,但运行 bundle package 有效。

          【讨论】:

            【解决方案7】:

            rm -rf vendor/cache

            bundle package

            bundle install

            bundle lock

            有点烦……不知道为什么我做不到bundle install --relock

            【讨论】:

              【解决方案8】:

              如果您将 Capistrano 与 Bundler 的 require 'bundler/capistrano' 一起使用,则缓存目录位于 shared/bundle/ruby/1.8/cache

              【讨论】:

                【解决方案9】:

                当我升级到 Bundler 1.0.x 时,这个错误的所有痕迹都消失了。

                【讨论】:

                  【解决方案10】:

                  我通过删除存档的 gem 文件在 rails 3.1 应用程序中解决了这个问题:

                  $ bundle -v
                  Bundler version 1.0.17
                  $ rm -f vendor/bundle/ruby/1.8/cache/*.gem
                  

                  【讨论】:

                    【解决方案11】:

                    我在部署时遇到了这个问题,但不想从 git 中删除 vendor/cache

                    相反,我最终这样做了:

                    # deploy.rb
                    namespace :bundle do
                      desc "Removes vendor/cache when NO_GEM_CACHE=1 is set. Resolves Zlib::GzipFile::Error (not in gzip format)."
                      task :remove_cache do
                        run "rm -fr #{release_path}/vendor/cache" if ENV['NO_GEM_CACHE'] == '1'
                      end
                    end
                    before :'bundle:install', :'bundle:remove_cache'
                    

                    只要简单地出现此错误:

                    cap deploy NO_GEM_CACHE=1
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2012-11-20
                      • 1970-01-01
                      • 2021-02-08
                      • 1970-01-01
                      • 1970-01-01
                      • 2022-11-09
                      • 1970-01-01
                      相关资源
                      最近更新 更多