论坛首页 编程语言技术论坛

Gem-Fast 用Curl来加速 gem install

浏览 12555 次
精华帖 (9) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-29   最后修改:2010-10-29
Rails 3.0发布那阵儿, 不少为安装Gem苦恼, 这下载Gem的速度太不给力了。 倒不是网速慢, Ruby的NET:HTTP要穿过墙, 翻山过海才能到达rubyforge的服务器。即使网络环境非常好, 也最多有50K的速度。更令人气氛的是, 连个进度条都没有,安装一个gem,往往几十分钟了, 屏幕上一点响应都没有! 老美光顾着自己网速嗖嗖的, 也不照顾我等P民。

于是乎, 大家各自发挥自己的能动性, 用下载工具先把Gem下下来, 然后 gem install xxx.1.1.1.gem -l,至于用什么下载,就各有千秋了, 浏览器、wget/curl、迅雷

不过事情还没完,  往往安装一个Gem要有很多依赖, 于是A依赖B1,B2, B1依赖C!,C2.    如果手工下载很真能搞出汗来!

---------------------------------------------------------------------------------------------------------------------------------------------------------------

这些苦恼都将成过去啦,  只要你系统上安装了curl,  你就可以下载gem-fast, 来加速你的Gem安装!(还有附赠下载进度条显示噢)

terminal中输入: gem install gem-fast

如果遇到问题, 想回退到之前的下载模式, 只需:gem uninstall gem-fast即可

一切如你所愿!

项目地址: http://github.com/dazuiba/gem-fast

Bug Track: http://github.com/dazuiba/gem-fast/issues

附赠截图:




   发表时间:2010-10-29   最后修改:2010-10-30
试下....希望可以.
有时候干脆连gem也找不到,上次我gem安装居然是找不到http://rubygems.org/.

没找到.不给力啊..
引用
u2@u2-laptop:~$ sudo gem install ParseTree sourcify
[sudo] password for u2:
Downloading http://rubygems.org/latest_specs.4.8.gz
######################################################################## 100.0%
Downloading http://gems.github.com/latest_specs.4.8.gz
File already downloaded and cached to /usr/lib/ruby/gems/1.8/cache
Downloading http://gems.github.com/quick/Marshal.4.8/ParseTree-3.0.6.gemspec.rz

curl: (22) The requested URL returned error: 404
ERROR:  While executing gem ... (GemFast::Util::ExecutionError)
    Failure while executing: curl -f#LA rubygem-gemfast http://gems.github.com/quick/Marshal.4.8/ParseTree-3.0.6.gemspec.rz --insecure -o /usr/lib/ruby/gems/1.8/cache/ParseTree-3.0.6.gemspec.rz


引用
u2@u2-laptop:~$ sudo gem uninstall gem-fast
Successfully uninstalled gem-fast-0.0.6
u2@u2-laptop:~$ sudo gem install ParseTree sourcify
Successfully installed ZenTest-4.4.0
Successfully installed RubyInline-3.8.6
Successfully installed ParseTree-3.0.6
Successfully installed sourcify-0.4.0
4 gems installed
Installing ri documentation for ZenTest-4.4.0...
Installing ri documentation for RubyInline-3.8.6...
Installing ri documentation for ParseTree-3.0.6...
Installing ri documentation for sourcify-0.4.0...
Installing RDoc documentation for ZenTest-4.4.0...
Installing RDoc documentation for RubyInline-3.8.6...
Installing RDoc documentation for ParseTree-3.0.6...
Installing RDoc documentation for sourcify-0.4.0...


0 请登录后投票
   发表时间:2010-10-29  
为什么Net::HTTP的速度比curl慢?
是建立连接慢还是下载时慢?
0 请登录后投票
   发表时间:2010-10-29  
orcl_zhang 写道
试下....不行,希望可以.
有时候干脆连gem也找不到..很悲剧的.


没看懂,这位老兄遇到啥问题了?

@楼上, 应该是都慢吧。 具体我没有测试过。 不凭感觉, 比wget慢几倍。
0 请登录后投票
   发表时间:2010-10-29  
我也是觉得gem下载慢,而且看不到进度,有时候直接出错
这个挺好,windows下也能用
0 请登录后投票
   发表时间:2010-10-30  
我机器上为嘛没问题呢? 你吧gem source -l的结果给我。是不是github的原因。
$ gem source -l
*** CURRENT SOURCES ***

http://rubygems.org/

Administrator@sam-thinkpad ~
$ gem install ParseTree
Downloading http://rubygems.org/latest_specs.4.8.gz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/ParseTree-3.0.6.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/RubyInline-3.8.6.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/sexp_processor-3.0.5.gemspec.r
z
######################################################################## 100.0%
Downloading http://rubygems.org/specs.4.8.gz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/ZenTest-4.3.0.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/ZenTest-4.3.1.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/ZenTest-4.3.2.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/ZenTest-4.3.3.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/quick/Marshal.4.8/ZenTest-4.4.0.gemspec.rz
######################################################################## 100.0%
Downloading http://rubygems.org/gems/ZenTest-4.4.0.gem
######################################################################## 100.0%
Downloading http://rubygems.org/gems/RubyInline-3.8.6.gem
######################################################################## 100.0%
Downloading http://rubygems.org/gems/sexp_processor-3.0.5.gem
######################################################################## 100.0%
Downloading http://rubygems.org/gems/ParseTree-3.0.6.gem
######################################################################## 100.0%
Successfully installed ZenTest-4.4.0
Successfully installed RubyInline-3.8.6
Successfully installed sexp_processor-3.0.5
Successfully installed ParseTree-3.0.6
4 gems installed
Installing ri documentation for ZenTest-4.4.0...
Installing ri documentation for RubyInline-3.8.6...









orcl_zhang 写道
试下....希望可以.
有时候干脆连gem也找不到,上次我gem安装居然是找不到http://rubygems.org/.

没找到.不给力啊..
引用
u2@u2-laptop:~$ sudo gem install ParseTree sourcify
[sudo] password for u2:
Downloading http://rubygems.org/latest_specs.4.8.gz
######################################################################## 100.0%
Downloading http://gems.github.com/latest_specs.4.8.gz
File already downloaded and cached to /usr/lib/ruby/gems/1.8/cache
Downloading http://gems.github.com/quick/Marshal.4.8/ParseTree-3.0.6.gemspec.rz

curl: (22) The requested URL returned error: 404
ERROR:  While executing gem ... (GemFast::Util::ExecutionError)
    Failure while executing: curl -f#LA rubygem-gemfast http://gems.github.com/quick/Marshal.4.8/ParseTree-3.0.6.gemspec.rz --insecure -o /usr/lib/ruby/gems/1.8/cache/ParseTree-3.0.6.gemspec.rz


引用
u2@u2-laptop:~$ sudo gem uninstall gem-fast
Successfully uninstalled gem-fast-0.0.6
u2@u2-laptop:~$ sudo gem install ParseTree sourcify
Successfully installed ZenTest-4.4.0
Successfully installed RubyInline-3.8.6
Successfully installed ParseTree-3.0.6
Successfully installed sourcify-0.4.0
4 gems installed
Installing ri documentation for ZenTest-4.4.0...
Installing ri documentation for RubyInline-3.8.6...
Installing ri documentation for ParseTree-3.0.6...
Installing ri documentation for sourcify-0.4.0...
Installing RDoc documentation for ZenTest-4.4.0...
Installing RDoc documentation for RubyInline-3.8.6...
Installing RDoc documentation for ParseTree-3.0.6...
Installing RDoc documentation for sourcify-0.4.0...



0 请登录后投票
   发表时间:2010-11-01  
u2@u2-laptop:~/NetBeansProjects/webapp$ gem source -l
*** CURRENT SOURCES ***

http://rubygems.org/
http://gems.github.com
0 请登录后投票
   发表时间:2010-11-14   最后修改:2010-11-15
orcl_zhang 写道
u2@u2-laptop:~/NetBeansProjects/webapp$ gem source -l
*** CURRENT SOURCES ***

http://rubygems.org/
http://gems.github.com




最近比较忙,这个问题拖到现在才解决了, 请升级gem-fast到0.0.6.1(或以上)

详细的描述见这里:https://github.com/dazuiba/gem-fast/issues/issue/1

现在用hard code的方式来解决的,code diff见:https://github.com/dazuiba/gem-fast/commit/e466b61b056362bc8e9f8f12bc127a484a6ffd0f

0 请登录后投票
   发表时间:2010-11-19  
danielking 写道
我也是觉得gem下载慢,而且看不到进度,有时候直接出错
这个挺好,windows下也能用

你可以 gem install xxxx -V 
从此安装gem的过程不再寂寞.....
0 请登录后投票
   发表时间:2010-11-21  
刚试了下,是快一些,而且有进度条的感觉好多了,不过跟-V结果比较好像少下载了些文件。
但是bundle install时前面有一堆文件下载看不到名称,希望可以加进去,
我bundle install第一次还有一个错误
curl: (7) couldn't connect to host
/home/leon/.rvm/gems/ruby-1.9.2-p0/gems/gem-fast-0.0.6.2/lib/gem-fast/utils.rb:26:in `safe_system': Failure while executing: curl -f#LA rubygem-gemfast http://rubygems.org/quick/Marshal.4.8/arel-2.0.4.gemspec.rz --insecure -o /home/leon/.rvm/gems/ruby-1.9.2-p0/cache/arel-2.0.4.gemspec.rz (GemFast::Util::ExecutionError)
from /home/leon/.rvm/gems/ruby-1.9.2-p0/gems/gem-fast-0.0.6.2/lib/gem-fast/utils.rb:7:in `curl'
......
看来可以加上重试的功能
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics