在Ubuntu 16.04上使用rbenv安装Ruby on Rails的方法

[复制链接]
发表于 2026-10-5 19:10:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Ruby on Rails 是经典的 Web 开发组合,用命令行工具 rbenv 来装 Ruby 是目前最主流的做法。rbenv 的价值在于它给 Ruby 开发提供了一个稳定环境:可以给每个项目指定独立版本,也可以随时切换全局版本,让整个团队的 Ruby 版本保持一致。本文按实操顺序,把从依赖安装到 Rails 装完验证的完整过程整理出来,并附上卸载和升级的做法。

一、先决条件

开始之前需要准备两件事:

  • 一台 Ubuntu 16.04 的服务器,并且已经建好了非 root 权限的普通用户(后续所有操作都用这个普通用户完成,不要用 root)。
  • 通过官方 PPA 装好 Node.js。原因是 Rails 的部分功能(比如 Asset Pipeline)依赖 JavaScript 运行时,Node.js 正好补上这一块。

二、更新apt并安装依赖

第一次用 apt 之前先更新一次,确保本地软件包缓存是新的:

sudo apt-get update

然后一次性装齐 rbenv 和 Ruby 编译所需的系统依赖:

sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev \
  libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

这些包分别对应不同用途:build-essential 提供 gcc/make;libssl-dev 是 HTTPS 通信needed;libyaml-dev 给 Psych 解析用;zlib1g-dev 给 ZIP 压缩用;其余是 Ruby 编译链接时常见的动态库。少了任意一个,编译 Ruby 时都会在某个具体步骤报错。

三、安装 rbenv

用 git 把 rbenv 仓库克隆到用户主目录下:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

接着把 ~/.rbenv/bin 加入 $PATH,并把 ~/.rbenv/bin/rbenv init 写进 ~/.bashrc,这样每次开新终端都会自动加载 rbenv:

echo 'export PATH="$HOME/.rbenv/binPATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

然后让配置立即生效:

source ~/.bashrc

用 type rbenv 检查是否装对,正确的话终端会输出一串函数定义,开头是「rbenv is a function」——这说明它走的是 shell 函数而不是普通可执行文件,是 rbenv 正常工作的标志。

rbenv 本身只管版本切换,要装新版本 Ruby 还得装 ruby-build 插件,同样用 git 克隆:

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

四、安装 Ruby

先列出所有可安装的版本:

rbenv install -l

输出是一长串版本号,挑需要的那个。下面以 Ruby 2.5.0 为例:

rbenv install 2.5.0
rbenv global 2.5.0

两点要留意:一是安装 Ruby 时间比较长(十到几十分钟),别以为卡死了;二是 global 只是设置当前用户的默认版本,如果要用项目级版本,可以在项目目录里放 .ruby-version 文件指定。

装完用 ruby -v 验证,输出里应该能同时看到版本号和编译平台信息。到这里 Ruby 部分就完成了。

五、使用 Gems

Gem 是 Ruby 的功能扩展包,Rails 就通过 gem 来装。为了加快安装速度,先关掉本地文档生成:

echo "gem: --no-document" > ~/.gemrc
gem install bundler

gem env home 可以查看 gem 实际安装到哪个路径,输出类似 /home/用户名/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0,能帮你确认版本隔离是否生效。

六、安装 Rails

直接用 gem 装最新版的 Rails:

gem install rails

要装指定版本,先搜一下可用版本,再带 -v 安装:

gem search '^rails$' --all
gem install rails -v 4.2.7

这里有个 rbenv 的机制要记住:rbenv 是靠维护一个 shims 目录来工作的,目录里放着指向当前启用 Ruby 版本的符号链接。每装一个新版本的 Ruby、或者装了提供新命令的 gem(比如 Rails),都要执行一次:

rbenv rehash

不做 rehash 的话,新装的 rails 命令会提示找不到。最后 rails -v 打印出版本号,就说明整条链路通了。

七、升级与卸载

因为是 git 装的 rbenv,升级很简单:

cd ~/.rbenv
git pull

装过的 Ruby 版本会堆在 ~/.rbenv/versions 下,用 uninstall 子命令清理:

rbenv uninstall 2.1.3

八、实践中容易卡住的几个点

  • 忘记 source:改完 .bashrc 不执行 source ~/.bashrc,新开终端也读不到,rbenv 命令会提示不存在。
  • root 与用户混用:rbenv 装在哪个用户下就只对该用户生效,root 下装的 gem 普通用户找不到。
  • 忘记 rehash:装完 Rails 直接敲 rails 报错,执行 rbenv rehash 就好。
  • 编译依赖缺一个:报错信息通常指向具体的 .h 文件,缺哪个补哪个 -dev 包即可,别整体重装。

走完这套流程,Ruby 环境就是可版本化、可隔离的,后续多个项目用不同 Ruby 版本互不相扰,团队协同时只要约定好 .ruby-version 就不会出现「我这儿能跑你那儿不行」的情况。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表