【问题标题】:Installing Sproutcore with RubyGems fails at the haml gem在 haml gem 中使用 RubyGems 安装 Sproutcore 失败
【发布时间】:2011-05-09 11:53:33
【问题描述】:

我正在尝试使用 RubyGems 在 windows xp vm (virtualbox) 上安装 sproutcore,以进行开发。当 gems 到达 haml-3.0.25.gem 时,它会因错误而停止:

gem install sproutcore -V
...
ERROR:  While executing gem ... (Zlib::DataError)
invalid stored block lengths

我已经尝试过 Ruby 1.8.7 和 1.9.2 以及 RubyGems 1.7.1 和 1.8.1。 我尝试使用 git 下载 haml 3.1.1 并手动安装,但 rake 无法安装。它说找不到'lib/haml'。该目录确实存在。

其他 gem 在我尝试的所有组合下都安装得很好。我什至尝试在我的主机操作系统(Win 7 32 位)下安装它,但它给出了同样的错误。单独安装 haml 只会稍微改变错误消息:

gem install haml -V
...
ERROR:  While executing gem ... (Zlib::DataError)
invalid code lengths set

Zlib 压缩和解压缩我读过的数据流,所以听起来 haml gem 可能已损坏(尽管我怀疑)。

我束手无策,在任何地方都找不到有用的建议。

【问题讨论】:

    标签: ruby rubygems haml sproutcore


    【解决方案1】:

    特别感谢@saner 的贡献。在经历了很多挫折之后,这就是我最终在 Windows 7 主机上运行的 Windows XP VM 上安装 sproutcore 的方式。

    1) 下载并安装 Ruby 1.9.2-p180(记得勾选选项以在 PATH 变量中包含 bin 目录)。
    2) 下载DevKit 4.5.1并解压。
    3) 打开命令提示符并 cd 到解压缩的目录。
    4) 运行:

    ruby dk.rb init
    ruby dk.rb review
    ruby dk.rb install
    

    5) 下载 RubyGems 1.7.2 并运行 setup.rb
    6)从命令提示符运行

    gem install haml -v 3.0.24
    gem install eventmachine --pre
    gem install sproutcore --pre
    

    就是这样。
    享受吧。

    【讨论】:

      【解决方案2】:

      我能够在 Ruby 1.9.2 上安装 SproutCore:

      1. 安装 Ruby 1.9.2-p180
      2. gem install sproutcore --pre
      3. gem install eventmachine --pre
      4. gem 卸载瘦
      5. gem install mongrel

      我需要删除瘦,因为启动 sc-server 以错误结束,SproutCore 将使用 mongrel 而不是瘦。


      更新:

      我没有提到我使用的是 RubyGems 1.7.2 并且我已经安装了 DevKit 和 Cygwin。

      我删除了所有版本的 SproutCore、Mongrel 和 Haml,然后输入:

      1. gem install sproutcore --pre,已安装 SproutCore v1.6.0.beta.1。
      2. eventmachine --pre, eventmachine (1.0.0.beta.3 x86-mingw32) 已安装

      SproutCore 可在此设置下使用,不需要使用 mongrel。

      我的配置:sproutcore (1.6.0.beta.1), ruby​​ 1.9.2p180, gem 1.7.2, thin (1.2.11 x86-mingw32), eventmachine (1.0.0.beta.3 x86-mingw32) , haml (3.0.25), gcc 版本 4.5.0 (GCC)

      【讨论】:

      • 感谢您的回复,但我的安装仍然以同样的方式失败,使用 gem install sproutcore --pre
      【解决方案3】:

      我知道这是一个非常老的问题,但由于我刚刚遇到同样的问题,所以我决定添加我的见解。

      所以,当我尝试在具有不同架构、不同位置和不同网络的两台不同机器上安装相同的一组 gem 时,它发生了。 IE。 - 我的家庭 mac 和远程 linux 服务器。

      所以,一个特定的 gem (dm-sqlite-adapter) 在两台机器上都安装失败,我什至尝试了几次,但总是得到相同的结果:

      $ gem install dm-sqlite-adapter 
      ERROR:  While executing gem ... (Zlib::DataError)
          invalid code lengths set
      

      然后我花了几分钟浏览网络寻找解决方案,包括阅读这个帖子。

      因为我没有找到任何令人满意的答案,而且我对重新安装所有东西的想法不满意,所以决定装傻,再试一次 gem install.. 它奏效了。然后尝试了另一台机器 - 像魅力一样工作。

      因此,作为一个结论,我只是猜测问题来自远程仓库,并且可能根本没有下载 gem(我忘记在成功安装之前检查它)。但正如我所说 - 这只是一个猜测..

      【讨论】:

        猜你喜欢
        • 2012-12-24
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2015-07-11
        • 1970-01-01
        相关资源
        最近更新 更多