ruby - 强制 RubyGems 使用 HTTP

标签 ruby gem

我一直在尝试解决 gem install 在 2.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/

然而,它们对我没有影响。包括这篇文章在内的一些帖子(ruby - bundle install/update too slow,对 user1189762 的回答的第一条评论)说 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

我的 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

所有请求都是通过 https 发出的。

无论如何要在 gemrc 中强制使用 http?这是我的瓶颈吗?

最佳答案

.gemrc 未应用,因为它位于您的用户目录中,但当您使用 sudo 执行命令时,执行的所有权将停止。

要么不使用sudo,要么使用

$ sudo gem sources 

管理资源。

用法:gem 源 [选项]

  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

命令

$ sudo gem sources -c
$ sudo gem sources -a http://rubygems.org/

应该更改源列表。

请记住,如果您使用的是 rvm、bundler 或 rbenv,您可能不需要 sudo 来安装您的 gem。

关于ruby - 强制 RubyGems 使用 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762369/

相关文章:

ruby-on-rails - Rails + Twitter Bootstrap : File to import not found or unreadable: twitter/bootstrap

ruby - 无法安装 JSON gem

ruby - 允许在类定义中执行 "class << self; def foo; end; end"的方法和运算符在哪里定义?

ruby-on-rails - 发生 fatal error 。请参阅位于 http ://bit. ly/bundler-issues 的 Bundler 故障排除文档

ruby-on-rails - 将 Ruby on Rails 从版本 3.2.13 升级到 4.0.0 时遇到问题

mysql - 如何在半复杂场景中正确检测局部最大值和曲线窗口?

ruby-on-rails - Rails - 设计安装(成功/现场工作,但文件不存在)

ruby - 识别包含列表中每个字符的字符串

ruby-on-rails - "uninitialized constant Authlogic"

mysql - rails : bundle doesn't show installed mysql2 gem