我正在尝试使用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'的信息。该目录确实存在。
在我尝试的所有组合下,其他宝石安装得很好。我甚至尝试在我的主机操作系统(Win 7 32位)下安装它,但它给出了同样的错误。安装haml本身只会稍微更改错误消息:
gem install haml -V
...
ERROR: While executing gem ... (Zlib::DataError)
invalid code lengths set
Zlib压缩和解压缩我读过的数据流,所以听起来像haml gem可能已经腐败了(虽然我怀疑)。
我在我的智慧结束,在任何地方都找不到有用的建议。
答案 0 :(得分:1)
特别感谢@saner的贡献。经过很多挫折之后,我终于在Windows 7主机上运行的Windows XP VM上安装了sproutcore。
1)下载并安装Ruby 1.9.2-p180(记得勾选选项,将bin目录包含在PATH变量中)。
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
多数民众赞成 享受。
答案 1 :(得分:0)
我能够在Ruby 1.9.2上安装SproutCore:
我需要删除瘦,因为启动sc-server以错误结束,SproutCore将使用mongrel而不是thin。
更新
我没有提到我使用RubyGems 1.7.2而且我安装了DevKit和Cygwin。
我删除了所有版本的SproutCore,Mongrel和Haml,然后输入了:
gem install sproutcore --pre
,安装了SproutCore v1.6.0.beta.1。 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 version 4.5.0(GCC)
答案 2 :(得分:0)
我知道这是一个非常古老的问题,但由于我刚遇到同样的问题,我已经决定加入我的见解。
所以,当我尝试在具有不同架构,不同位置和不同网络的两台不同机器上安装相同的宝石时,就发生了这种情况。即 - 我家的mac和远程linux服务器。
所以,一个特定的gem(dm-sqlite-adapter)在两台机器上安装都失败了,我甚至尝试了几次,但总是有相同的结果:
$ gem install dm-sqlite-adapter
ERROR: While executing gem ... (Zlib::DataError)
invalid code lengths set
然后我花了几分钟浏览网络寻求解决方案,包括阅读这个帖子。
由于我没有找到任何令人满意的答案而我对重新安装所有内容的想法感到不满意,所以决定愚蠢并再次尝试gem install
..而且它有效。然后尝试了另一台机器 - 像魅力一样工作。
所以作为一个结论,我只是猜测问题来自远程回购,也许宝石甚至没有下载(我忘了在成功安装之前检查)。但正如我所说 - 这只是猜测......