Ubuntu 22.04 安装 Ruby 环境指南
在 Ubuntu 22.04 / CentOS 8 / Ubuntu 24.04 上通过 apt、rvm、rbenv、ruby-build 从零安装 Ruby 环境,含版本对照表、shell 初始化、验证、卸载与常见问题,命令与回显均为三平台实测结果
Ubuntu 22.04 安装 Ruby 环境指南
目标:在 Ubuntu 22.04 / CentOS 8 / Ubuntu 24.04 三套操作系统上,从零安装 Ruby 运行时与 gem 工具链(apt 仓库包、rvm、rbenv+ruby-build 三种方式),并完成 shell 环境初始化、版本验证、卸载与常见问题排查。本文档所有命令与回显均为三平台实测结果。
一、环境信息
| 平台 | 实测系统版本 | 仓库默认 Ruby | 实测 Ruby | RubyGems |
|---|---|---|---|---|
| Ubuntu 22.04 | 22.04 LTS(x86_64) | ruby-full 3.0 | 3.0.2p107 | 3.3.5 |
| CentOS 8 | 8.4.2105(x86_64) | ruby 2.5(AppStream) | 2.5.9p229 | 2.7.6.3 |
| Ubuntu 24.04 | 24.04 LTS(x86_64) | ruby-full 3.2 | 3.2.3 | 3.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
十、参考链接
- Ruby 官网:https://www.ruby-lang.org/
- Ruby 下载与安装:https://www.ruby-lang.org/en/downloads/
- rvm 官网:https://rvm.io
- rbenv:https://github.com/rbenv/rbenv
- ruby-build:https://github.com/rbenv/ruby-build
- RubyGems 国内镜像(ruby-china):https://gems.ruby-china.com/