Rbenv Ruby 版本管理器完整教程
Rbenv 是 Ruby 社区最流行的版本管理工具,由 Sam Stephenson 创建。它通过修改 PATH 环境变量中的 shim 来实现版本切换,设计简洁、不修改系统 Ruby。本文将详细介绍如何在搬瓦工 VPS 上使用 Rbenv 管理 Ruby 环境。购买搬瓦工使用优惠码 NODESEEK2026 享 6.77% 折扣。
一、安装前准备
# Ubuntu/Debian 安装编译依赖
apt update
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
# CentOS/RHEL
yum install -y git gcc bzip2 openssl-devel libyaml-devel libffi-devel \
readline-devel zlib-devel gdbm-devel ncurses-devel
二、安装 Rbenv
# 克隆 rbenv 仓库
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
# 编译动态 bash 扩展(加速 rbenv,可选)
cd ~/.rbenv && src/configure && make -C src
# 添加到 PATH
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc
source ~/.bashrc
# 安装 ruby-build 插件(用于安装 Ruby)
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# 验证安装
rbenv --version
ruby-build --version
三、安装 Ruby 版本
# 查看可安装的 Ruby 版本
rbenv install -l
# 安装指定版本
rbenv install 3.3.0
rbenv install 3.2.2
# 查看已安装的版本
rbenv versions
# 设置全局默认版本
rbenv global 3.3.0
# 验证
ruby --version
gem --version
四、版本管理
# 全局版本(所有目录的默认版本)
rbenv global 3.3.0
# 项目级版本(在项目目录下)
cd /opt/my-rails-app
rbenv local 3.2.2
# 会创建 .ruby-version 文件
# 当前 Shell 临时版本
rbenv shell 3.1.4
# 查看当前使用的版本及来源
rbenv version
# 3.3.0 (set by /home/user/.rbenv/version)
# 刷新 shims(安装新 Gem 后需要)
rbenv rehash
五、Gem 和 Bundler 管理
# 安装 Bundler
gem install bundler
# 刷新 shims
rbenv rehash
# 在项目中使用 Bundler
cd /opt/my-rails-app
bundle init
bundle add rails
bundle install
# 查看 Gem 安装路径
gem env home
# /home/user/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0
# 配置 Gem 不安装文档(加速安装)
echo 'gem: --no-document' >> ~/.gemrc
六、Rails 部署实战
# 安装 Ruby 和 Rails
rbenv install 3.3.0
rbenv global 3.3.0
gem install rails bundler
# 创建 Rails 应用
rails new myapp --database=postgresql
cd myapp
# 设置项目 Ruby 版本
rbenv local 3.3.0
# 安装依赖
bundle install
# 使用 Puma 运行
bundle exec rails server -b 0.0.0.0 -p 3000
Systemd 服务配置
cat > /etc/systemd/system/rails-app.service << 'EOF'
[Unit]
Description=Rails Application
After=network.target
[Service]
User=deploy
WorkingDirectory=/opt/my-rails-app
Environment="PATH=/home/deploy/.rbenv/versions/3.3.0/bin:/home/deploy/.rbenv/bin:/usr/bin"
Environment="RAILS_ENV=production"
ExecStart=/home/deploy/.rbenv/versions/3.3.0/bin/bundle exec puma -C config/puma.rb
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable rails-app
systemctl start rails-app
七、Rbenv 插件推荐
# ruby-build(必装,用于安装 Ruby)
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# rbenv-vars(管理环境变量)
git clone https://github.com/rbenv/rbenv-vars.git "$(rbenv root)"/plugins/rbenv-vars
# rbenv-default-gems(安装新版本时自动安装指定 Gem)
git clone https://github.com/rbenv/rbenv-default-gems.git "$(rbenv root)"/plugins/rbenv-default-gems
echo "bundler" >> "$(rbenv root)"/default-gems
# 更新 ruby-build(获取最新 Ruby 版本列表)
cd "$(rbenv root)"/plugins/ruby-build && git pull
八、常用命令速查
rbenv install -l # 查看可安装版本
rbenv install 3.3.0 # 安装版本
rbenv uninstall 3.1.4 # 卸载版本
rbenv versions # 查看已安装版本
rbenv version # 查看当前版本
rbenv global 3.3.0 # 设置全局版本
rbenv local 3.2.2 # 设置项目版本
rbenv shell 3.1.4 # 设置临时版本
rbenv rehash # 刷新 shims
rbenv which ruby # 查看可执行文件路径
rbenv root # 查看 rbenv 根目录
总结
Rbenv 是在搬瓦工 VPS 上管理 Ruby 多版本的最佳实践。它设计简洁、与系统 Ruby 互不干扰,非常适合 Rails 应用部署。如果你同时需要管理多种编程语言的版本,推荐使用通用版本管理器 asdf。选购搬瓦工请访问 全部方案,使用优惠码 NODESEEK2026 享 6.77% 折扣,通过 bwh81.net 进入官网。