如何在 Ubuntu 22.04 上使用 rbenv 安装 Ruby on Rails
介绍
Ruby on Rails 是最受希望创建网站和 Web 应用程序的开发人员欢迎的应用程序堆栈之一。 Ruby 编程语言与 Rails 开发框架相结合,使您能够快速构建和部署可扩展的应用程序。
您可以使用命令行工具 rbenv 安装 Ruby 和 Rails。使用 rbenv 为您提供了一个可靠的环境来开发您的 Ruby on Rails 应用程序,并允许您在 Ruby 版本之间切换,让您的整个团队使用同一版本。 rbenv 还支持指定特定应用程序的 Ruby 版本,允许您为每个用户更改全局 Ruby,以及使用环境变量覆盖 Ruby 版本的选项。
在本教程中,您将使用 rbenv
和 gem
遵循 Ruby 和 Rails 安装过程。首先,您将安装适当的包以安装 rbenv,然后安装 Ruby。之后,您将安装 ruby-build
插件,以便安装可用的 Ruby 版本。最后,您将使用 gem
安装 Rails,然后可以使用 Ruby on Rails 开始您的 Web 开发。您还将学习如何检查您的 rbenv 版本是否是最新的,以及如何卸载 Ruby 版本和 rbenv。
先决条件
要学习本教程,您需要:
- 按照 Ubuntu 22.04 初始服务器设置指南设置一台 Ubuntu 22.04 服务器,包括
sudo
非根用户和防火墙。 - Node.js 使用官方 PPA 安装,如如何在 Ubuntu 22.04 上安装 Node.js 的选项 2 中所述。一些 Rails 特性,例如 Asset Pipeline,依赖于 JavaScript Runtime。 Node.js 提供此功能。
第 1 步 – 安装 rbenv 和依赖项
Ruby 依赖于几个可以通过包管理器安装的包。安装完这些之后,您可以安装 rbenv 并使用它来安装 Ruby。
首先,更新您的包裹清单:
- sudo apt update
接下来,安装安装 Ruby 所需的依赖项:
- sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
安装依赖项后,您可以安装 rbenv 本身。使用 curl
从 Github 获取安装脚本并将其直接通过管道传输到 bash
以运行安装程序:
- curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
接下来,将 ~/.rbenv/bin
添加到您的 PATH
中,以便您可以使用 rbenv
命令行实用程序。通过更改您的 ~/.bashrc
文件来执行此操作,以便它影响未来的登录会话:
- echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
然后,将命令 eval $ (rbenv init -)
添加到您的 ~/.bashrc
文件中,以便 rbenv 自动加载:
- echo 'eval "$(rbenv init -)"' >> ~/.bashrc
接下来,将您对 ~/.bashrc
文件所做的更改应用到当前的 shell 会话:
- source ~/.bashrc
通过运行 type
命令验证 rbenv 是否设置正确,该命令显示有关 rbenv
命令的更多信息:
- type rbenv
您的终端窗口将显示以下内容:
Outputrbenv is a function
rbenv ()
{
local command;
command="${1:-}";
if [ "$#" -gt 0 ]; then
shift;
fi;
case "$command" in
rehash | shell)
eval "$(rbenv "sh-$command" "$@")"
;;
*)
command rbenv "$command" "$@"
;;
esac
}
此时,您已经安装了 rbenv 和 ruby-build。接下来,您将安装 Ruby。
第 2 步 – 使用 ruby-build 安装 Ruby
现在安装了 ruby-build
插件,您可以使用一个命令安装您可能需要的任何版本的 Ruby。首先,列出所有可用的 Ruby 版本:
- rbenv install -l
该命令的输出列出了您可以选择安装的所有版本:
Output2.7.7
3.0.5
3.1.3
3.2.0
jruby-9.4.0.0
mruby-3.1.0
picoruby-3.0.0
truffleruby-22.3.1
truffleruby+graalvm-22.3.1
Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
现在,安装 Ruby 3.2.0:
- rbenv install 3.2.0
安装 Ruby 可能是一个漫长的过程,因此请做好安装需要一些时间才能完成的准备。
安装完成后,使用 global
子命令将其设置为默认的 Ruby 版本:
- rbenv global 3.2.0
通过检查其版本号来验证 Ruby 是否已正确安装:
- ruby -v
如果您安装了 3.2.0 版的 Ruby,此命令将返回如下输出:
Outputruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
您现在至少安装了一个版本的 Ruby 并设置了默认的 Ruby 版本。接下来,您将设置 gems 和 Rails。
第 3 步 – 使用 Gems
Gem 是 Ruby 库的分布方式。您使用 gem
命令来管理这些 gem,并使用此命令安装 Rails。
安装 gem 时,安装过程会生成本地文档。这会为每个 gem 的安装过程增加大量时间,因此通过创建一个名为 ~/.gemrc
的文件来关闭本地文档生成,其中包含一个配置设置来关闭此功能:
- echo "gem: --no-document" > ~/.gemrc
Bundler 是一个管理项目的 gem 依赖项的工具。接下来安装 Bundler gem,因为 Rails 依赖于它:
- gem install bundler
您将收到以下输出:
OutputFetching bundler-2.4.5.gem
Successfully installed bundler-2.4.5
1 gem installed
您可以使用gem env
命令(子命令env
是environment
的缩写)来了解更多关于gem的环境和配置。您可以使用 home
参数确认 gems 的安装位置,如下所示:
- gem env home
你会收到类似这样的输出:
Output/home/sammy/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0
一旦设置好gems,就可以安装Rails。
第 4 步 – 安装导轨
要安装 Rails,请使用 gem install
命令和 -v
标志来指定版本。对于本教程,您将使用版本 7.0.4
:
- gem install rails -v 7.0.4
gem
命令安装您指定的 gem,以及它的任何依赖项。 Rails 是一个复杂的 Web 开发框架,并且有很多依赖项,因此该过程需要一些时间才能完成。最终,您会收到一条消息,说明 Rails 及其依赖项已安装:
Output...
Successfully installed rails-7.0.4
35 gems installed
注意:如果您想安装不同版本的 Rails,您可以通过搜索列出有效的 Rails 版本,这将输出可能版本的列表。然后你可以安装一个特定的版本,比如4.2.7:
- gem search '^rails$' --all
- gem install rails -v 4.2.7
如果您想安装最新版本的 Rails,请运行不指定版本的命令:
- gem install rails
rbenv 通过创建 shims 目录来工作,该目录指向当前启用的 Ruby 版本使用的文件。通过 rehash
子命令,rbenv 在该目录中维护垫片以匹配服务器上安装的每个 Ruby 版本的每个 Ruby 命令。每当您安装新版本的 Ruby 或像 Rails 一样提供命令的 gem 时,您应该运行以下命令:
- rbenv rehash
通过使用以下命令打印 Rails 的版本来验证 Rails 是否已正确安装:
- rails -v
如果安装正确,以下命令将返回安装的 Rails 版本:
OutputRails 7.0.4
此时,您可以开始测试 Ruby on Rails 安装并开始开发 Web 应用程序。现在让我们回顾一下如何使 rbenv 保持最新。
第 5 步 – 更新 rbenv
由于您使用 Git 手动安装了 rbenv,因此您可以随时使用 ~/.rbenv
目录中的 git pull
命令将安装升级到最新版本:
- cd ~/.rbenv
- git pull
这确保您使用的是可用的最新版本的 rbenv。
第 6 步 – 卸载 Ruby 版本
当您下载其他版本的 Ruby 时,您可能会在 ~/.rbenv/versions
目录中积累比您想要的更多的版本。使用 ruby-build
插件的 uninstall
子命令删除这些以前的版本。
以下命令将卸载 Ruby 版本 3.2.0:
- rbenv uninstall 3.2.0
使用 rbenv uninstall
命令,您可以清理旧版本的 Ruby,这样您就不会安装比当前使用的更多的 Ruby。
第 7 步 – 卸载 rbenv
如果您决定不再使用 rbenv,您可以将它从您的系统中删除。
为此,请在您喜欢的文本编辑器中打开您的 ~/.bashrc
文件。在这个例子中,我们将使用 nano
:
- nano ~/.bashrc
从文件中查找并删除以下两行:
...
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
删除这些行后,保存文件并退出编辑器。如果您使用了 nano
,您可以按 CTRL + X
然后按 Y
和 ENTER
退出。
然后使用以下命令删除 rbenv 和所有已安装的 Ruby 版本:
- rm -rf `rbenv root`
注销并重新登录以将更改应用到您的 shell。
结论
在本教程中,您安装了 rbenv
和 gem
来安装整个 Ruby on Rails 框架。从这里,您可以开始创建您的 Web 开发应用程序项目。如果您想详细了解如何使这些环境更健壮,可以查看我们关于如何使用 Ruby 编写代码的系列文章。