应使用rbenv安装ruby 3.2.2并配置gem源,避免系统包管理器安装的旧版ruby;需装齐编译依赖、克隆rbenv与ruby-build、初始化shell、执行rbenv rehash,并验证路径与版本一致。

ruby 不是系统自带就一定能用的——尤其当你准备跑 Rails、Jekyll 或新 gem 时,直接 apt install ruby-full 或 dnf install ruby 很大概率会卡在 cannot load such file -- bundler/setup 或 incompatible library version。真正能落地开发的 Ruby 环境,必须满足三点:版本够新(≥3.2.2)、安装路径隔离、gem 源可配。系统包管理器只管“能跑”,不管“能开发”。
用 rbenv 装 Ruby 3.2.2 是当前最稳的选择
rbenv 不动系统 Ruby,所有版本装在 ~/.rbenv 下,切换干净,没权限污染,配合 ruby-build 插件还能自动处理 OpenSSL/zlib 编译细节。
- 先装依赖(Ubuntu/Debian):
sudo apt install -y git curl autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev - 克隆 rbenv:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv - 加进 shell:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc && source ~/.bashrc - 装插件:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build - 装版本:
rbenv install 3.2.2(别跳过这步:3.2.2 是 Rails 7.1+ CI 实测最稳的,3.3.x 在某些 OpenSSL 3.0+ 系统上仍偶发 SSL_connect 错误) - 设为全局:
rbenv global 3.2.2,再立刻执行rbenv rehash(否则ruby命令找不到)
用 rvm 安装 Ruby 时最容易踩的三个坑
rvm 功能强,但错一步就全盘失效。它对用户权限、GPG 验证、shell 初始化顺序极其敏感。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 别用
sudo装 rvm:\curl -sSL https://get.rvm.io | bash -s stable必须以普通用户运行;用 root 装完,~/.rvm所有文件属主是 root,后续rvm install全部 Permission denied - 新版 rvm 已弃用旧 keyserver,不用手动
gpg --recv-keys;如果提示 GPG error,说明你用了过期文档——直接重跑安装命令即可 - 装完 Ruby 后必须
rvm use 3.2.4 --default,且验证which ruby输出是~/.rvm/rubies/ruby-3.2.4/bin/ruby;如果是/usr/bin/ruby,说明source ~/.rvm/scripts/rvm没生效,检查是否漏了写进~/.bashrc或没source
gem 源不换,bundle install 就是死循环
国内直连 https://rubygems.org 99% 超时或 SSL 验证失败,这不是网络问题,是 CDN 节点调度策略导致的——Ruby China 镜像同步延迟
- 确认当前源:
gem sources -l - 删默认源:
gem sources --remove https://rubygems.org/ - 加镜像:
gem sources --add https://gems.ruby-china.com/ - 装 bundler:
gem install bundler(如果仍报 SSL 错误,不是镜像问题,是 OpenSSL 版本太老,此时应rvm reinstall 3.2.2 --disable-binary强制重编译)
系统包管理器装的 Ruby 只适合跑单脚本,别碰 Rails
Ubuntu 24.04 的 ruby-full 是 3.0.6,CentOS Stream 9 的 ruby 是 3.1.2 —— 这些版本连 rails new 都过不去,因为 zeitwerk 和 importmap-rails 依赖 Ruby 3.2+ 的常量查找行为。更麻烦的是,系统包把 gem 装在 /var/lib/gems,权限归 root,你 gem install rails 会直接 Permission denied。
- 如果你只是临时跑一个
.rb脚本,sudo apt install ruby-full够用 - 但只要涉及
bundle、rails、jekyll、sinatra,就必须用 rbenv 或 rvm 管理用户级 Ruby - 别信“装完
gem update --system就能修好”——系统包的 gem 与 Ruby ABI 绑定,升级 gem 本身不会拉高 Ruby 版本
rbenv 和 rvm 的核心差异不在功能,而在心智负担:rbenv 更轻,出问题容易定位(比如 rbenv which ruby 一看路径就明白);rvm 更全,但一旦初始化失败,rvm list 都可能报 command not found。选哪个不重要,关键是别混用——同一台机器上同时装 rbenv 和 rvm,PATH 里两个 bin 目录打架,ruby 命令会随机指向不同版本。










