Ubuntu 22.04 安装 Ruby 环境指南

在 Ubuntu 22.04 / CentOS 8 / Ubuntu 24.04 上通过 apt、rvm、rbenv、ruby-build 从零安装 Ruby 环境,含版本对照表、shell 初始化、验证、卸载与常见问题,命令与回显均为三平台实测结果

RubyRuby2026/10/09

Ubuntu 22.04 安装 Ruby 环境指南

目标:在 Ubuntu 22.04 / CentOS 8 / Ubuntu 24.04 三套操作系统上,从零安装 Ruby 运行时与 gem 工具链(apt 仓库包、rvm、rbenv+ruby-build 三种方式),并完成 shell 环境初始化、版本验证、卸载与常见问题排查。本文档所有命令与回显均为三平台实测结果。

一、环境信息

平台实测系统版本仓库默认 Ruby实测 RubyRubyGems
Ubuntu 22.0422.04 LTS(x86_64)ruby-full 3.03.0.2p1073.3.5
CentOS 88.4.2105(x86_64)ruby 2.5(AppStream)2.5.9p2292.7.6.3
Ubuntu 24.0424.04 LTS(x86_64)ruby-full 3.23.2.33.4.20
rvm 自装(Ubuntu 22.04)——3.2.2随 ruby 自带
  • 默认安装路径:apt 装到系统目录(/usr/bin/ruby);rvm 装到 /usr/local/rvm/;rbenv 装到 ~/.rbenv/
  • 本文示例账号:root(密码 q1w2e3r4,仅演示用)

二、前置条件

三平台均需可用的软件源与基础工具:

# Ubuntu 22.04 / 24.04
apt-get update
apt-get install -y curl wget git build-essential

# CentOS 8(注意:CentOS 8 已 EOL,需先配置 vault 归档源,见 5.1 节)
yum install -y curl wget git gcc make

⚠️ 注意:CentOS 8 已于 2021 年 12 月停止维护,默认 mirrorlist.centos.org 已失效,必须先切换 vault 归档源才能安装任何软件包(详见 5.1 节)。

三、版本选型说明

版本支持状态说明
Ruby 3.0.x维护中(2021-2024)Ubuntu 22.04 仓库默认
Ruby 3.2.x维护中(2022-2025)Ubuntu 24.04 仓库默认;rvm 实测可装
Ruby 2.5.x已停止维护CentOS 8 AppStream 默认,仅遗留系统使用

💡 说明:生产环境建议优先选仓库默认版本(安全补丁随系统更新);需要多版本并存或非默认版本时用 rvm / rbenv 管理。

四、Ubuntu 22.04 安装 Ruby

4.1 方案 A:apt 安装(官方仓库,推荐)

apt-get update
apt-get install -y ruby-full

实测回显(尾部):

Setting up ruby-full (1:3.0.2-1~22.04.1) ...

验证:

root@host:~# ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
root@host:~# gem -v
3.3.5

💡 说明:ruby-full 同时安装 RubyGems、irb、rake、test-unit 等完整工具链;Bundler 以 bundle3.0 命令提供(bundle3.0 -v 实测输出 Bundler version 2.2.22)。

4.2 方案 B:rvm 安装(多版本管理)

apt-get install -y gnupg2 curl
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh

实测回显(curl 安装脚本关键段):

Creating group 'rvm'
Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete:
  * To start using RVM you need to run `source /etc/profile.d/rvm.sh`

验证与安装 Ruby:

root@host:~# rvm -v
rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
root@host:~# rvm install 3.2.2
root@host:~# rvm use 3.2.2 --default
Using /usr/local/rvm/gems/ruby-3.2.2
root@host:~# ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]

💡 说明:rvm 会优先尝试下载官方 binary 包(实测 ruby-3.2.2 走 rubies.travis-ci.org 二进制),下载不到才本地编译;编译依赖由 rvm autolibs 自动通过 apt 补齐(gawk、autoconf、automake、bison、libgdbm-dev、libncurses5-dev、libsqlite3-dev、libtool、pkg-config、sqlite3、libgmp-dev)。

4.3 方案 C:rbenv + ruby-build 安装

apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

4.4 初始化 shell 环境(source)

# rvm 方式
echo 'source /etc/profile.d/rvm.sh' >> /root/.bashrc
source /etc/profile.d/rvm.sh

# rbenv 方式
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> /root/.bashrc
echo 'eval "$(rbenv init -)"' >> /root/.bashrc
source /root/.bashrc

⚠️ 注意:新开 shell 必须重新加载环境,否则 rvm / rbenv / 对应 ruby 不在 PATH 中;非交互脚本请显式 source 一次。

4.5 验证

root@host:~# ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
root@host:~# echo 'puts 6*7' > /tmp/hello.rb && ruby /tmp/hello.rb
42
root@host:~# gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/

4.6 卸载

# apt 方式
apt-get remove --purge -y ruby-full ruby
# rvm 方式
rvm implode
rm -rf /usr/local/rvm
# rbenv 方式
rm -rf ~/.rbenv
sed -i '/rbenv/d' /root/.bashrc

4.7 本平台常见问题

  • apt 装完 bundle 命令找不到:Ubuntu 的 bundler 可执行文件名为 bundle3.0,用 bundle3.0 -v 或 gem install bundler 后使用。
  • gem sources --add https://gems.ruby-china.com/ 报 SSL certificate verify failed:多因网络出口代理对证书做了替换(hostname mismatch),先核对代理是否对 gems 域名做透传;内网服务器直连出口正常时该命令可成功(详见《Ruby 配置与版本管理详解》)。

五、CentOS 8 安装 Ruby

5.1 修复 EOL 源(必须先做)

CentOS 8 已停止维护,默认 mirrorlist 已 404,实测报错:

Error: Failed to download metadata for repo 'appstream':
Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/

改用阿里云 vault 归档源:

cat > /etc/yum.repos.d/CentOS-Vault.repo <<'EOF'
[baseos]
name=CentOS $releasever - BaseOS (vault)
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
[appstream]
name=CentOS $releasever - AppStream (vault)
baseurl=https://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
gpgcheck=0
enabled=1
EOF
mv /etc/yum.repos.d/CentOS-Linux-*.repo /tmp/
yum clean all

5.2 方案 A:yum 安装(AppStream 仓库)

yum install -y ruby ruby-devel

实测回显(尾部):

  rubygems-2.7.6.3-107.module_el8.4.0+847+ee687b6c.noarch
Complete!

验证:

root@host:~# ruby -v
ruby 2.5.9p229 (2021-04-05 revision 67939) [x86_64-linux]
root@host:~# gem -v
2.7.6.3
root@host:~# gem env home
/usr/share/gems

5.3 方案 B:rvm 安装(可选,同 4.2)

yum install -y gnupg2 curl
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh

5.4 初始化 shell 环境(source)

echo 'source /etc/profile.d/rvm.sh' >> /root/.bashrc   # rvm 方式
source /etc/profile.d/rvm.sh

5.5 验证

root@host:~# echo 'puts 6*7' > /tmp/hello.rb && ruby /tmp/hello.rb
42
root@host:~# echo '2+3*4' | irb --simple-prompt
>> 2+3*4
=> 14

5.6 卸载

yum remove -y ruby ruby-devel rubygems
# rvm 方式
rvm implode
rm -rf /usr/local/rvm

5.7 本平台常见问题

  • yum 报 mirrorlist 无法解析:CentOS 8 EOL 导致,先按 5.1 配置 vault 归档源。
  • 仓库默认只有 Ruby 2.5:需要更高版本用 rvm 安装(实测 rvm 在 CentOS 上可装 ruby 3.2.x)。

六、Ubuntu 24.04 安装 Ruby

6.1 方案 A:apt 安装(推荐)

apt-get update
apt-get install -y ruby-full

验证:

root@host:~# ruby -v
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]
root@host:~# gem -v
3.4.20
root@host:~# gem env home
/var/lib/gems/3.2.0

💡 说明:Ubuntu 24.04 仓库自带 Ruby 3.2.3,bundler 可执行文件为 bundle3.2,实测 Bundler version 2.4.19。

6.2 方案 B:rvm 安装(同 4.2 命令)

apt-get install -y gnupg2 curl
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh

6.3 方案 C:rbenv + ruby-build(同 4.3 命令)

apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> /root/.bashrc
echo 'eval "$(rbenv init -)"' >> /root/.bashrc
source /root/.bashrc

6.4 验证

root@host:~# echo 'puts 6*7' > /tmp/hello.rb && ruby /tmp/hello.rb
42
root@host:~# ruby -e 'require "json"; puts JSON.generate({a: 1})'
{"a":1}

6.5 卸载

apt-get remove --purge -y ruby-full ruby
# rvm 方式
rvm implode
rm -rf /usr/local/rvm

6.6 本平台常见问题

  • bundle 命令找不到:Ubuntu 24.04 bundler 命令为 bundle3.2,或 gem install bundler 后直接用 bundle。
  • rvm 安装旧版本(如 3.0.0)编译失败,报 RSA_SSLV23_PADDING undeclared:Ubuntu 22.04/24.04 自带 OpenSSL 3.0,与 Ruby 3.0.x 的 openssl 扩展不兼容,属已知问题;改用 Ruby 3.2.x(实测通过)或安装 openssl@1.1 兼容链。

七、配置说明

  • gem 安装目录:Ubuntu 系统包默认 GEM_HOME=/var/lib/gems/<版本>(用户级 ~/.local/share/gem/ruby/<版本>),CentOS 为 /usr/share/gems,rvm 为 /usr/local/rvm/gems/ruby-<版本>
  • 国内 gem 源配置(写入 ~/.gemrc 或 gem sources):详见《Ruby 配置与版本管理详解》
  • Bundler 国内源:bundle config set mirror 'https://gems.ruby-china.com',详见配置详解篇

八、常见问题(FAQ)

问:ruby -v 显示系统旧版本,rvm 装的版本不生效? 答:新 shell 未 source /etc/profile.d/rvm.sh,或 rvm 未设默认(rvm use 3.2.2 --default);另外 PATH 中系统 /usr/bin/ruby 在前,可 which ruby 排查。

问:apt 装完没有 gem 命令? 答:ruby-full 已含 gem;若只装了 ruby 元包,补装 rubygems(CentOS)或 ruby-full(Ubuntu)。

问:gem install 极慢或超时? 答:国内服务器先切 gem 源到 https://gems.ruby-china.com/,见配置详解篇。

问:rvm 安装编译卡在 #compiling 后报 make error? 答:查看日志 /usr/local/rvm/log/<时间戳>_ruby-<版本>/make.log 定位;常见原因是 OpenSSL 版本不兼容(见 6.6)或内存不足(编译 ruby 建议 ≥1GB 内存)。

九、卸载方式

# Ubuntu(apt 安装)
apt-get remove --purge -y ruby-full ruby rubygems
# CentOS(yum 安装)
yum remove -y ruby ruby-devel rubygems
# rvm 多版本管理
rvm implode
rm -rf /usr/local/rvm /etc/profile.d/rvm.sh
# rbenv 多版本管理
rm -rf ~/.rbenv
# 清理用户级 gem 目录(按需)
rm -rf ~/.gem ~/.local/share/gem

十、参考链接