安装与配置 #

安装概述 #

RubyGems 从 Ruby 1.9 开始已经成为 Ruby 的标准组成部分,通常无需单独安装。但了解安装和配置方法对于环境管理非常重要。

检查当前版本 #

bash
# 检查 Ruby 版本
ruby -v
# ruby 3.2.0 (2022-12-25 revision a528908271)

# 检查 RubyGems 版本
gem -v
# 3.4.0

# 检查 Bundler 版本
bundle -v
# Bundler version 2.4.0

安装 Ruby #

方式一:使用版本管理器(推荐) #

rbenv #

rbenv 是轻量级的 Ruby 版本管理器:

bash
# macOS (使用 Homebrew)
brew install rbenv ruby-build

# 配置 shell
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc

# 安装 Ruby
rbenv install 3.2.0
rbenv global 3.2.0

# 验证
ruby -v
gem -v

rvm (Ruby Version Manager) #

rvm 是功能丰富的 Ruby 版本管理器:

bash
# 安装 GPG 密钥
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

# 安装 rvm
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm

# 安装 Ruby
rvm install 3.2.0
rvm use 3.2.0 --default

# 验证
ruby -v
gem -v

asdf #

asdf 是通用的版本管理器,支持多种语言:

bash
# 安装 asdf
brew install asdf

# 添加 Ruby 插件
asdf plugin add ruby

# 安装 Ruby
asdf install ruby 3.2.0
asdf global ruby 3.2.0

# 验证
ruby -v

方式二:系统包管理器 #

macOS (Homebrew) #

bash
# 安装 Ruby
brew install ruby

# 添加到 PATH
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Ubuntu/Debian #

bash
# 更新包列表
sudo apt update

# 安装 Ruby 和 RubyGems
sudo apt install ruby-full ruby-bundler

# 验证
ruby -v
gem -v

CentOS/RHEL #

bash
# 启用 EPEL 仓库
sudo yum install epel-release

# 安装 Ruby
sudo yum install ruby ruby-devel rubygems

# 验证
ruby -v
gem -v

方式三:官方安装包 #

Ruby 官网 下载安装包:

  • Windows: 使用 RubyInstaller
  • macOS: 使用官方 pkg 安装包
  • Linux: 编译源码安装
bash
# 编译安装(Linux/macOS)
wget https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.0.tar.gz
tar -xzf ruby-3.2.0.tar.gz
cd ruby-3.2.0
./configure --prefix=/usr/local
make
sudo make install

安装 Bundler #

Bundler 是 Ruby 项目依赖管理的标准工具:

bash
# 安装 Bundler
gem install bundler

# 安装特定版本
gem install bundler -v 2.4.0

# 验证
bundle -v

更新 RubyGems #

更新到最新版本 #

bash
# 更新 RubyGems
gem update --system

# 更新到特定版本
gem update --system 3.4.0

# 验证版本
gem -v

更新 Bundler #

bash
# 更新 Bundler
gem update bundler

# 或者在项目中更新
bundle update --bundler

配置 RubyGems #

配置文件位置 #

RubyGems 的配置文件为 .gemrc,位于以下位置:

位置 优先级 描述
项目根目录 最高 项目级配置
~/.gemrc 用户级配置
/etc/gemrc 系统级配置

基本配置 #

yaml
# ~/.gemrc
:sources:
  - https://rubygems.org/
:backtrace: false
:bulk_threshold: 1000
:benchmark: false
:verbose: true
:update_sources: true

使用命令配置 #

bash
# 查看所有配置
gem env

# 查看特定配置
gem env gemdir

# 设置配置
gem config set verbose true

# 添加镜像源
gem sources --add https://gems.ruby-china.com/

# 删除镜像源
gem sources --remove https://rubygems.org/

# 查看当前源
gem sources -l

镜像源配置 #

国内镜像源 #

由于网络原因,国内用户推荐使用镜像源:

bash
# 移除默认源
gem sources --remove https://rubygems.org/

# 添加国内镜像源
gem sources --add https://gems.ruby-china.com/

# 查看当前源
gem sources -l
# *** CURRENT SOURCES ***
# https://gems.ruby-china.com/

常用镜像源 #

镜像源 地址
Ruby China https://gems.ruby-china.com/
清华大学 https://mirrors.tuna.tsinghua.edu.cn/rubygems/
官方源 https://rubygems.org/

Bundler 镜像源配置 #

ruby
# Gemfile
source 'https://gems.ruby-china.com/'

gem 'rails'

或者使用配置文件:

bash
# 配置 Bundler 镜像源
bundle config mirror.https://rubygems.org https://gems.ruby-china.com

安装目录配置 #

查看安装路径 #

bash
# 查看 Gem 安装目录
gem env gemdir
# /usr/local/lib/ruby/gems/3.2.0

# 查看完整环境信息
gem env

用户级安装 #

避免权限问题,可以安装到用户目录:

bash
# 安装到用户目录
gem install mygem --user-install

# 配置默认用户安装
gem config set --global user-install true

项目级安装 #

使用 Bundler 安装到项目目录:

bash
# 安装到 vendor/bundle
bundle install --path vendor/bundle

# 后续安装会自动使用该路径
bundle install

代理配置 #

设置 HTTP 代理 #

bash
# 设置代理
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080

# 安装 Gem
gem install rails

在 .gemrc 中配置 #

yaml
# ~/.gemrc
:http_proxy: http://proxy.example.com:8080
:https_proxy: http://proxy.example.com:8080

Bundler 代理配置 #

bash
# 设置 Bundler 代理
bundle config proxy http://proxy.example.com:8080

SSL/TLS 配置 #

SSL 证书问题 #

如果遇到 SSL 证书问题:

bash
# 更新 RubyGems(包含更新的证书)
gem update --system

# 更新证书
gem install certifi

禁用 SSL 验证(不推荐) #

bash
# 临时禁用 SSL 验证
gem install mygem --source http://rubygems.org

# Bundler 禁用 SSL 验证
bundle config ssl_verify_mode 0

多版本 Ruby 管理 #

使用 rbenv #

bash
# 查看可安装版本
rbenv install -l

# 安装多个版本
rbenv install 3.1.0
rbenv install 3.2.0

# 切换版本
rbenv global 3.2.0    # 全局默认
rbenv local 3.1.0     # 当前目录

# 查看当前版本
rbenv version

使用 rvm #

bash
# 查看可安装版本
rvm list known

# 安装多个版本
rvm install 3.1.0
rvm install 3.2.0

# 切换版本
rvm use 3.2.0
rvm use 3.2.0 --default

# 查看已安装版本
rvm list

Gemset 管理(rvm) #

bash
# 创建 Gemset
rvm gemset create myproject

# 使用 Gemset
rvm gemset use myproject

# 列出所有 Gemset
rvm gemset list

# 删除 Gemset
rvm gemset delete myproject

环境变量 #

常用环境变量 #

变量 描述
GEM_HOME Gem 安装目录
GEM_PATH Gem 搜索路径
GEMRC .gemrc 文件路径
BUNDLE_PATH Bundler 安装路径

设置环境变量 #

bash
# 设置 GEM_HOME
export GEM_HOME=$HOME/.gem

# 添加到 PATH
export PATH=$GEM_HOME/bin:$PATH

# 添加到 shell 配置文件
echo 'export GEM_HOME=$HOME/.gem' >> ~/.zshrc
echo 'export PATH=$GEM_HOME/bin:$PATH' >> ~/.zshrc

Docker 环境配置 #

Dockerfile 示例 #

dockerfile
FROM ruby:3.2.0

WORKDIR /app

# 配置镜像源
RUN gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

# 安装 Bundler
RUN gem install bundler

# 复制 Gemfile
COPY Gemfile Gemfile.lock ./

# 安装依赖
RUN bundle install --jobs 4 --retry 3

# 复制应用代码
COPY . .

# 启动命令
CMD ["rails", "server", "-b", "0.0.0.0"]

docker-compose.yml 示例 #

yaml
version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - bundle_cache:/usr/local/bundle
    environment:
      - RAILS_ENV=development

volumes:
  bundle_cache:

验证安装 #

检查环境 #

bash
# 检查 Ruby
ruby -v

# 检查 RubyGems
gem -v

# 检查 Bundler
bundle -v

# 检查环境信息
gem env

# 检查已安装的 Gems
gem list

测试安装 #

bash
# 安装测试 Gem
gem install minitest

# 创建测试文件
cat > test.rb << 'EOF'
require 'minitest/autorun'

class TestExample < Minitest::Test
  def test_truth
    assert true
  end
end
EOF

# 运行测试
ruby test.rb

常见问题 #

权限问题 #

bash
# 错误信息
# ERROR: While executing gem ... (Gem::FilePermissionError)

# 解决方案 1: 使用 sudo
sudo gem install mygem

# 解决方案 2: 安装到用户目录
gem install mygem --user-install

# 解决方案 3: 修改目录权限
sudo chown -R $(whoami) /usr/local/lib/ruby/gems

网络问题 #

bash
# 错误信息
# ERROR: Could not find a valid gem

# 解决方案 1: 使用镜像源
gem sources --add https://gems.ruby-china.com/

# 解决方案 2: 使用代理
export https_proxy=http://proxy.example.com:8080

# 解决方案 3: 增加超时时间
gem install mygem --timeout 300

版本冲突 #

bash
# 错误信息
# Gem::LoadError: You have already activated xxx

# 解决方案 1: 更新 Bundler
gem update bundler

# 解决方案 2: 使用 bundle exec
bundle exec ruby app.rb

# 解决方案 3: 清理旧版本
gem cleanup

原生扩展编译失败 #

bash
# 错误信息
# ERROR: Failed to build gem native extension

# 解决方案: 安装开发工具

# macOS
xcode-select --install

# Ubuntu/Debian
sudo apt install build-essential ruby-dev

# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install ruby-devel

下一步 #

现在你已经完成了 RubyGems 的安装和配置,接下来学习 基本命令 开始使用 RubyGems!

最后更新:2026-03-28