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

介绍

Ruby on Rails是开发者创建网站和Web应用程序时常用的应用程序堆栈。结合Ruby编程语言和Rails开发框架,使应用程序开发变得快速而高效。

安装Ruby和Rails的一种方法是使用命令行工具rbenv。使用rbenv将为您提供一个良好控制和强大的环境,用于开发Ruby on Rails应用程序,并允许您根据需要轻松切换Ruby的工作版本。

rbenv支持指定应用程序特定版本的Ruby,允许更改每个用户的全局Ruby,并允许您使用环境变量覆盖Ruby版本。

在本教程中,您将使用rbenv在本地macOS机器上安装和设置Ruby on Rails。

先决条件

要按照本教程操作,您需要:

步骤 1 — 安装 rbenv

在这一步中,您将安装 rbenv 并确保它在启动时自动启动。在 macOS 上,本教程将使用包管理器 Homebrew

要使用 Homebrew 下载 rbenv 包,请运行以下命令:

  1. brew install rbenv

这将安装 rbenv 和 [ruby-build] (https://github.com/rbenv/ruby-build) 插件。该插件添加了 rbenv install 命令,简化了新版本 Ruby 的安装过程。这可能会安装其他几个依赖项并花费一些时间。

接下来,您将向您的~/.bash_profile文件中添加命令eval "$(rbenv init -)",以便在您打开终端时自动加载rbenv。要做到这一点,请在nano或您喜欢的文本编辑器中打开您的.bash_profile

  1. nano .bash_profile

将以下行添加到文件中:

~/.bash_profile
eval "$(rbenv init -)"

保存并退出文件。

接下来,将您对~/.bash_profile文件所做的更改应用到当前的shell会话中:

  1. source ~/.bash_profile

要验证rbenv是否设置正确,请使用type命令,该命令将显示有关rbenv命令的更多信息:

  1. type rbenv

您的终端窗口将显示以下内容:

Output
rbenv 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

现在安装了ruby-build插件,您可以通过单个命令安装任何您可能需要的Ruby版本。在此步骤中,您将选择一个Ruby版本,在您的机器上安装它,然后验证安装。

首先,使用-l标志列出可用的Ruby版本。请注意,未列出的最新次要版本也可能可用。例如,如果此命令的输出列出了Ruby 3.0.5,您可能也能安装3.0.4

  1. rbenv install -l
Output
2.6.10 2.7.6 3.0.4 3.1.2 jruby-9.3.6.0 mruby-3.1.0 picoruby-3.0.0 rbx-5.0 truffleruby-22.1.0 truffleruby+graalvm-22.1.0

该命令的输出将是一个你可以选择安装的版本的长列表。

在本教程中,我们将安装 Ruby 3.1.2

  1. rbenv install 3.1.2

安装 Ruby 可能需要一段时间,所以请准备好等待安装完成。

安装完成后,使用 global 子命令将其设置为您的默认 Ruby 版本:

  1. rbenv global 3.1.2

通过检查其版本号来验证 Ruby 是否已正确安装:

  1. ruby -v

您的输出将类似于这样:

Output
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

要安装并使用不同版本的 Ruby,请使用不同的版本号运行 rbenv 命令,例如 rbenv install 2.7.6rbenv global 2.7.6

现在您已安装了一个 Ruby 版本并设置了默认的 Ruby 版本。接下来,您将设置自己以使用 Ruby 软件包和库,或者称为 gems,然后您可以安装 Rails。

第三步 — 使用 Gems

Gems 是 Ruby 库和程序的包,可以在 Ruby 生态系统中分发。您可以使用 gem 命令来管理这些 gems。在此步骤中,您将配置 gem 命令以准备安装 Rails。

安装 gem 时,安装过程会生成本地文档。这可能会显著增加每个 gem 的安装时间,因此您可以通过创建一个名为 ~/.gemrc 的文件来关闭本地文档生成功能:

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

完成后,使用 gem 命令安装 Bundler,这是一个用于管理项目的 gem 依赖关系的工具。这对于 Rails 的正常工作是必需的:

  1. gem install bundler

您会看到如下输出:

Output
Fetching: bundler-2.3.18.gem Successfully installed bundler-2.3.18 1 gem installed

您可以使用 gem env 命令了解有关 gem 环境和配置的更多信息。要查看已安装的 gem 的位置,请使用 home 参数,就像这样:

  1. gem env home

您会看到类似于以下内容的输出:

/Users/sammy/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0

现在您已经设置并探索了 gem 工作流程,可以自由安装 Rails。

步骤 4 — 安装 Rails

要安装 Rails,请使用 gem install 命令:

  1. gem install rails

gem 命令会安装您指定的 gem,以及每个依赖项。Rails 是一个复杂的 Web 开发框架,有许多依赖项,因此该过程将需要一些时间才能完成。最终,您将会看到一条消息,指出 Rails 及其依赖项已安装完成:

Output
... Successfully installed rails-7.0.3.1 35 gems installed

注意:如果您想安装不同版本的Rails,可以通过搜索列出有效版本的Rails,这将输出一个可能版本的长列表。然后,您可以使用`-v`标志安装特定版本,例如`4.2.7`:

  1. gem search '^rails$' --all
  2. gem install rails -v 4.2.7

rbenv通过创建一个`shims`目录或者拦截调用并改变或重定向它们的库来工作。在这种情况下,shims指向Ruby命令到当前启用的Ruby版本使用的文件。通过`rehash`子命令,rbenv维护该目录中的shims以匹配服务器上每个已安装Ruby版本的每个Ruby命令。每当您安装新的Ruby版本或提供命令的gem,例如Rails时,应使用`rehash`。

要重新生成shims目录,请运行以下命令:

  1. rbenv rehash

通过此命令打印Rails的版本以验证Rails的安装:

  1. rails -v

您将看到安装的Rails版本:

Output
Rails 7.0.3.1

成功安装Rails后,您可以开始测试您的Ruby on Rails安装并开始开发Web应用程序。在下一步中,您将学习如何更新和卸载rbenv和Ruby。

步骤 5 — 更新和卸载rbenv和Ruby

在维护项目时,了解如何在需要时更新和卸载是很有用的。在这一步中,您将升级rbenv,然后从您的计算机中卸载Ruby和rbenv。

您可以使用Homebrew升级rbenv和ruby-build,方法是运行以下命令:

  1. brew upgrade rbenv ruby-build

如果rbenv或ruby-build需要更新,Homebrew将自动执行此操作。如果您的设置已经是最新的,您将获得类似以下的输出:

Output
Warning: rbenv 1.2.0 already installed Warning: ruby-build 20220713 already installed

这将确保我们使用的是可用的最新版本的rbenv。

当您下载其他版本的Ruby时,您可能会在~/.rbenv/versions目录中积累比您想要的更多的版本。使用ruby-build插件的uninstall子命令,您可以删除这些先前的版本。

例如,运行以下命令以卸载Ruby版本2.1.3

  1. rbenv uninstall 2.1.3

使用rbenv uninstall命令,您可以清理旧版本的Ruby,以便您当前使用的安装的版本不会超过数量。

如果您决定不再使用rbenv,您可以将其从系统中删除。

要做到这一点,首先在编辑器中打开您的~/.bash_profile文件:

  1. nano ~/.bash_profile

从文件中找到并删除以下行以阻止rbenv在您打开终端时启动:

~/.bash_profile
...
eval "$(rbenv init -)"

删除此行后,保存文件并退出编辑器。

运行以下命令以应用更改到您的shell:

  1. source ~/.bash_profile

接下来,使用以下命令删除rbenv和所有安装的Ruby版本:

  1. rm -rf `rbenv root`

最后,使用Homebrew删除rbenv软件包本身:

  1. brew uninstall rbenv

检查rbenv的版本,确保已被卸载:

  1. rbenv -v

您将获得以下输出:

Output
-bash: /usr/local/bin/rbenv: No such file or directory

这意味着您已成功从您的计算机中删除了rbenv。

结论

在本教程中,您使用rbenv在macOS上安装了Ruby on Rails。从这里开始,您可以通过我们的如何在Ruby中编码系列了解更多关于Ruby编程的知识。您还可以探索如何使用PostgreSQL而不是其默认的sqlite3数据库来使用Ruby on Rails,后者为您的应用程序提供了更多的可扩展性、集中性和稳定性。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-macos