Total Pageviews

Monday, 20 June 2016

RubyGems的镜像网站-ruby.taobao.org

https://ruby.taobao.org/
为什么有这个?
由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以你会与遇到gem install rack 或bundle install 的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程。
这是一个完整 rubygems.org 镜像,你可以用此代替官方版本,同步频率目前为 15分钟一次以保证尽量与官方服务同步。 
如何使用?
$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org
# 请确保只有 ruby.taobao.org
$ gem install rails
如果你使用 Gemfile 和 Bundle (例如:Rails 项目)
你可以用 Bundler 的 Gem 源代码镜像命令
$ bundle config mirror.https://rubygems.org https://ruby.taobao.org
这样你不用改你的 Gemfile 的 source。
source 'https://rubygems.org/'
gem 'rails', '4.1.0'
...
修改 RVM ,改用本站作为下载源, 提高安装速度。
For Mac
$ sed -i .bak 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db
For Linux
$ sed -i 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db
常见问题
  1. Q: 为何我新发布的 Gem 在淘宝源上面无法安装?
    A: 由于同步是定期执行的,新发布的 Gem 可能没有那么快同步过来,你需要稍等一段时间后才能使用。
  2. Q: 已经换成淘宝源了,但 bundle install 或 gem install xxx 的时候卡住很久不动?
    A: 这有可能是你网络问题,或者没有正确的好 gem 的源,你可以尝试 gem install xxx -V 并把执行过程的结果在 Ruby China 上面发帖求助。
  3. Q: gem install xxx 的时候遇到错误信息包含:“Error fetching data: Errno::ETIMEDOUT: Operation timed out - connect(2)”
    A: 网络问题导致请求淘宝服务器被连接重置了,在遇到此类情况的时候,你可以尝试换一台机器或网络尝试安装,看是否还有同样的问题,以确定是淘宝镜像服务器的问题还是你的环境问题,如果你换了环境仍然有问题,请上 Ruby China 发帖求助.