强制RubyGems使用HTTP

jvi*_*tti 4 ruby gem

我一直试图解决gem install2.9GHz Intel Core 7 MacBook Pro上非常慢的事实.

我应用了我在互联网上找到的解决方案:

https://stackoverflow.com/questions/1887704/gem-is-very-slow
http://buddingrubyist.wordpress.com/2009/02/14/how-to-speed-up-gem-installs-10x/
Run Code Online (Sandbox Code Playgroud)

然而他们对我没有任何影响.包括这一个的一些帖子(ruby - bundle install/update太慢,首先评论us​​er1189762的答案)说RubyGems从HTTPS获取时速度较慢.

这是我的.gemrc:

---
gem: --no-ri --no-rdoc
benchmark: false
verbose: true
update_sources: true
sources:
- http://gems.rubyforge.org/
- http://rubygems.org/
backtrace: true
bulk_threshold: 1000
Run Code Online (Sandbox Code Playgroud)

sources都在使用http,但是如果做了一个冗长的安装我得到:

$ sudo gem install rack -V
Password:
GET https://rubygems.org/latest_specs.4.8.gz
302 Moved Temporarily
GET https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz
200 OK
GET https://rubygems.org/quick/Marshal.4.8/rack-1.5.2.gemspec.rz
302 Moved Temporarily
GET https://s3.amazonaws.com/production.s3.rubygems.org/quick/Marshal.4.8/rack-1.5.2.gemspec.rz
200 OK
Installing gem rack-1.5.2
Run Code Online (Sandbox Code Playgroud)

所有请求都是用来做的https.

无论如何要强行http进入gemrc?这是我的瓶颈吗?

Sim*_*tti 15

.gemrc没有应用,因为它生活在你的用户目录,但是当你执行与命令sudo执行的所有权被暂停.

要么不使用sudo或使用

$ sudo gem sources 
Run Code Online (Sandbox Code Playgroud)

管理来源.

用法:宝石来源[选项]

  Options:
    -a, --add SOURCE_URI             Add source
    -l, --list                       List sources
    -r, --remove SOURCE_URI          Remove source
    -c, --clear-all                  Remove all sources (clear the cache)
    -u, --update                     Update source cache
Run Code Online (Sandbox Code Playgroud)

命令

$ sudo gem sources -c
$ sudo gem sources -a http://rubygems.org/
Run Code Online (Sandbox Code Playgroud)

应该更改源列表.

请记住,如果您使用的是rvm,bundler或rbenv,则可能不需要sudo安装宝石.