介绍
Ruby on Rails是开发者创建网站和Web应用程序时常用的应用程序堆栈。结合Ruby编程语言和Rails开发框架,使应用程序开发变得快速而高效。
安装Ruby和Rails的一种方法是使用命令行工具rbenv。使用rbenv将为您提供一个良好控制和强大的环境,用于开发Ruby on Rails应用程序,并允许您根据需要轻松切换Ruby的工作版本。
rbenv支持指定应用程序特定版本的Ruby,允许更改每个用户的全局Ruby,并允许您使用环境变量覆盖Ruby版本。
在本教程中,您将使用rbenv在本地macOS机器上安装和设置Ruby on Rails。
先决条件
要按照本教程操作,您需要:
- 一台安装有macOS的计算机或虚拟机,对该机器具有管理员访问权限,并且能够连接到互联网。本教程在macOS 12.4 Monterey上进行了测试。
- Node.js 安装在您的 macOS 机器上,如 在 macOS 上安装 Node.js 并创建本地开发环境 中所述。一些 Rails 功能,例如 Asset Pipeline,依赖于 JavaScript 运行时。Node.js 提供了这个功能。
- 您的 macOS 机器上安装了 Homebrew 包管理器。
步骤 1 — 安装 rbenv
在这一步中,您将安装 rbenv 并确保它在启动时自动启动。在 macOS 上,本教程将使用包管理器 Homebrew。
要使用 Homebrew 下载 rbenv
包,请运行以下命令:
- brew install rbenv
这将安装 rbenv 和 [ruby-build] (https://github.com/rbenv/ruby-build) 插件。该插件添加了 rbenv install
命令,简化了新版本 Ruby 的安装过程。这可能会安装其他几个依赖项并花费一些时间。
接下来,您将向您的~/.bash_profile
文件中添加命令eval "$(rbenv init -)"
,以便在您打开终端时自动加载rbenv。要做到这一点,请在nano
或您喜欢的文本编辑器中打开您的.bash_profile
:
- nano .bash_profile
将以下行添加到文件中:
eval "$(rbenv init -)"
保存并退出文件。
接下来,将您对~/.bash_profile
文件所做的更改应用到当前的shell会话中:
- source ~/.bash_profile
要验证rbenv是否设置正确,请使用type
命令,该命令将显示有关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
现在安装了ruby-build插件,您可以通过单个命令安装任何您可能需要的Ruby版本。在此步骤中,您将选择一个Ruby版本,在您的机器上安装它,然后验证安装。
首先,使用-l
标志列出可用的Ruby版本。请注意,未列出的最新次要版本也可能可用。例如,如果此命令的输出列出了Ruby 3.0.5
,您可能也能安装3.0.4
。
- rbenv install -l
Output2.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:
- rbenv install 3.1.2
安装 Ruby 可能需要一段时间,所以请准备好等待安装完成。
安装完成后,使用 global
子命令将其设置为您的默认 Ruby 版本:
- rbenv global 3.1.2
通过检查其版本号来验证 Ruby 是否已正确安装:
- ruby -v
您的输出将类似于这样:
Outputruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]
要安装并使用不同版本的 Ruby,请使用不同的版本号运行 rbenv
命令,例如 rbenv install 2.7.6
和 rbenv global 2.7.6
。
现在您已安装了一个 Ruby 版本并设置了默认的 Ruby 版本。接下来,您将设置自己以使用 Ruby 软件包和库,或者称为 gems,然后您可以安装 Rails。
第三步 — 使用 Gems
Gems 是 Ruby 库和程序的包,可以在 Ruby 生态系统中分发。您可以使用 gem
命令来管理这些 gems。在此步骤中,您将配置 gem
命令以准备安装 Rails。
安装 gem 时,安装过程会生成本地文档。这可能会显著增加每个 gem 的安装时间,因此您可以通过创建一个名为 ~/.gemrc
的文件来关闭本地文档生成功能:
- echo "gem: --no-document" > ~/.gemrc
完成后,使用 gem
命令安装 Bundler,这是一个用于管理项目的 gem 依赖关系的工具。这对于 Rails 的正常工作是必需的:
- gem install bundler
您会看到如下输出:
OutputFetching: bundler-2.3.18.gem
Successfully installed bundler-2.3.18
1 gem installed
您可以使用 gem env
命令了解有关 gem 环境和配置的更多信息。要查看已安装的 gem 的位置,请使用 home
参数,就像这样:
- gem env home
您会看到类似于以下内容的输出:
/Users/sammy/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0
现在您已经设置并探索了 gem 工作流程,可以自由安装 Rails。
步骤 4 — 安装 Rails
要安装 Rails,请使用 gem install
命令:
- 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`:
- gem search '^rails$' --all
- gem install rails -v 4.2.7
rbenv通过创建一个`shims`目录或者拦截调用并改变或重定向它们的库来工作。在这种情况下,shims指向Ruby命令到当前启用的Ruby版本使用的文件。通过`rehash`子命令,rbenv维护该目录中的shims以匹配服务器上每个已安装Ruby版本的每个Ruby命令。每当您安装新的Ruby版本或提供命令的gem,例如Rails时,应使用`rehash`。
要重新生成shims目录,请运行以下命令:
- rbenv rehash
通过此命令打印Rails的版本以验证Rails的安装:
- rails -v
您将看到安装的Rails版本:
OutputRails 7.0.3.1
成功安装Rails后,您可以开始测试您的Ruby on Rails安装并开始开发Web应用程序。在下一步中,您将学习如何更新和卸载rbenv和Ruby。
步骤 5 — 更新和卸载rbenv和Ruby
在维护项目时,了解如何在需要时更新和卸载是很有用的。在这一步中,您将升级rbenv,然后从您的计算机中卸载Ruby和rbenv。
您可以使用Homebrew升级rbenv和ruby-build,方法是运行以下命令:
- brew upgrade rbenv ruby-build
如果rbenv或ruby-build需要更新,Homebrew将自动执行此操作。如果您的设置已经是最新的,您将获得类似以下的输出:
OutputWarning: rbenv 1.2.0 already installed
Warning: ruby-build 20220713 already installed
这将确保我们使用的是可用的最新版本的rbenv。
当您下载其他版本的Ruby时,您可能会在~/.rbenv/versions
目录中积累比您想要的更多的版本。使用ruby-build插件的uninstall
子命令,您可以删除这些先前的版本。
例如,运行以下命令以卸载Ruby版本2.1.3:
- rbenv uninstall 2.1.3
使用rbenv uninstall
命令,您可以清理旧版本的Ruby,以便您当前使用的安装的版本不会超过数量。
如果您决定不再使用rbenv,您可以将其从系统中删除。
要做到这一点,首先在编辑器中打开您的~/.bash_profile
文件:
- nano ~/.bash_profile
从文件中找到并删除以下行以阻止rbenv在您打开终端时启动:
...
eval "$(rbenv init -)"
删除此行后,保存文件并退出编辑器。
运行以下命令以应用更改到您的shell:
- source ~/.bash_profile
接下来,使用以下命令删除rbenv和所有安装的Ruby版本:
- rm -rf `rbenv root`
最后,使用Homebrew删除rbenv软件包本身:
- brew uninstall rbenv
检查rbenv的版本,确保已被卸载:
- 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