由于众所周知的原因,国内并不能访问到官方的 Ruby 源,所以大部分朋友可能都是使用的国内的镜像源。而这里面,使用的最多的,可能就是淘宝提供的镜像源了。不过最近淘宝的镜像源 ruby.taobao.org 停止更新了,所以使用 CocoaPods 的同学,请更新到 ruby china 的源。详细的内容,请参见:https://ruby-china.org/topics/29250。
另一方面 , CocoaPods 最近也升级到了 1.1.0 版本,主要是增加了对 Xcode 8 的支持。
RubyGems 一直以来在国内都非常难访问到,在本地你或许可以翻墙,当你要发布上线的时候,你就很难搞了!
这是一个完整 RubyGems 镜像,你可以用此代替官方版本,我们是基于国内 CDN + 国外服务器的方式,能确保几乎无延迟的同步。
请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。
$ gem update --system # 这里请翻墙一下
$ gem -v
2.6.3
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.org
# 确保只有 gems.ruby-china.org
如果你使用 Gemfile 和 Bundle (例如:Rails 项目)
你可以用 Bundler 的 Gem 源代码镜像命令。
$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org
这样你不用改你的 Gemfile 的 source。
source 'https://rubygems.org/'
gem 'rails', '4.2.5'
...
常见问题?
如果遇到 SSL 证书问题,你又无法解决,请直接用 http://gems.ruby-china.org 避免 SSL 的问题。
如果你在意 Gem 下载的安全问题,请正确安装 Ruby、OpenSSL,建议部署 Linux 服务器的时候采用 这个 RVM 安装脚本 的方式安装 Ruby。
Bundler::GemspecError: Could not read gem at /home/xxx/.rvm/gems/ruby-2.1.8/cache/rugged-0.23.3.gem. It may be corrupted.,这类错误是网络原因下载到了坏掉的文件到本地,请直接删除那个文件。
请珍惜社区资源,勿基于本镜像做二次镜像网站,我们会定期检查 CDN 请求量统计,单日请求量过大(流量超过 20G) 的 IP 将会被永久屏蔽。
Tip:
错误:ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR: You must add /C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority to your local trusted store
ERROR: SSL verification error at depth 2: self signed certificate in certificate chain (19)
ERROR: Root certificate is not trusted (/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA)
这是由于Ruby环境需要2.2版本以上,所以要更新Ruby环境,开始的时候就有建议你升级到2.6版本,可能没仔细看。
解决:
更新Ruby环境
0.首先要安装Homebrew终端输入这条命令即可/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.安装rvm$ curl -L get.rvm.io | bash -s stable
2.装载rvm$ source ~/.rvm/scripts/rvm
3.安装2.3.0版本ruby$ rvm install 2.3.0
4.将2.3.0设为默认$ rvm use 2.3.0 --default
证书错误问题
$cd $rvm_path/usr/ssl
$ sudo curl -O http://curl.haxx.se/ca/cacert.pem
$ sudo mv cacert.pem cert.pem
理论上应该解决了。
错误解决参考了Senjougahara http://www.jianshu.com/p/17043faee2e6文章。
但是我的还是不行:继续用以下方法:
参考:https://segmentfault.com/q/1010000002926243
加了一句:sudo gem install -n /usr/local/bin cocoapods --pre
可以了