官方 RubyGems 源 (https://rubygems.org) 因部分資源託管於 Amazon S3,中國大陸訪問極不穩定。切換至淘寶鏡像 (https://gems.ruby-china.com,原 ruby.taobao.org) 可大幅提升 gem install 速度。
# 1. 移除官方源
gem sources --remove https://rubygems.org/
# 2. 添加淘寶/Ruby China 鏡像
gem sources --add https://gems.ruby-china.com/
# 3. 驗證當前源
gem sources -l
# *** CURRENT SOURCES ***
# https://gems.ruby-china.com/
不修改全域源,僅對當前專案生效:
# 在專案根目錄執行
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
# 驗證
bundle config
# Settings are listed in order of priority. The top value will be used.
# mirror.https://rubygems.org
# Set for the current user (/home/user/.bundle/config): "https://gems.ruby-china.com"
此後 bundle install 將自動走鏡像源。
source 'https://gems.ruby-china.com'
gem 'rails', '~> 7.0'
gem 'pg', '~> 1.4'
# ...
# Dockerfile
FROM ruby:3.2
# 切換 Gem 源
RUN gem sources --remove https://rubygems.org/ \
&& gem sources --add https://gems.ruby-china.com/
# 或使用 Bundler 配置
RUN bundle config mirror.https://rubygems.org https://gems.ruby-china.com
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
CMD ["rails", "server", "-b", "0.0.0.0"]
| 問題 | 原因 | 解決 |
|---|---|---|
| gem sources -l 仍顯示官方源 | 用戶級配置優先級高 | gem sources --remove https://rubygems.org/ 確實移除 |
| SSL 憑證驗證失敗 | 舊版 Ruby/OpenSSL 不信任鏡像憑證 | 升級 Ruby、或 gem update --system、或暫時 gem sources --add https://gems.ruby-china.com/ (不推薦) |
| 私有 Gem 無法安裝 | 鏡像未同步私有庫 | Gemfile 中單獨指定私有源:source 'https://private.gem.server' do; gem 'my-private-gem'; end |
| 中國大陸無法訪問 gems.ruby-china.com | 極少數網絡封鎖 | 嘗試 https://mirrors.aliyun.com/rubygems/、https://mirrors.tuna.tsinghua.edu.cn/rubygems/ |
https://ruby.taobao.org **已停止維護**,自 2018 年起重定向至 https://gems.ruby-china.com。gem sources --remove ... --add https://gems.ruby-china.com/bundle config mirror.https://rubygems.org https://gems.ruby-china.com (推薦,不污染全域)source 'https://gems.ruby-china.com'