由于眾所周知的原因,國內并不能訪問到官方的 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.lxweimin.com/p/17043faee2e6文章。
但是我的還是不行:繼續用以下方法:
參考:https://segmentfault.com/q/1010000002926243
加了一句:sudo gem install -n /usr/local/bin cocoapods --pre
可以了