介绍
Ruby on Rails 是一个流行的应用程序堆栈,适用于希望创建网站和 Web 应用程序的开发人员。 Ruby编程语言,结合Rails开发框架,让应用开发快速高效。
安装 Ruby 和 Rails 的一种方法是使用命令行工具 rbenv。 使用 rbenv 将为您提供一个控制良好且健壮的环境来开发您的 Ruby on Rails 应用程序,允许您在需要时为整个团队轻松切换 Ruby 版本。
rbenv 支持指定特定于应用程序的 Ruby 版本,允许您更改每个用户的全局 Ruby,并允许您使用环境变量来覆盖 Ruby 版本。
在本教程中,您将使用 rbenv 在本地 macOS 机器上安装和设置 Ruby on Rails。
先决条件
要遵循本教程,您将需要:
- 一台安装了 macOS 的计算机或虚拟机,具有对该计算机的管理访问权限和 Internet 连接。 本教程已在 macOS 10.14 Mojave 上进行了测试。
- Node.js 安装在您的 macOS 机器上,如 如何在 macOS 上安装 Node.js 并创建本地开发环境 中所述。 一些 Rails 功能,例如 Asset Pipeline,依赖于 JavaScript 运行时。 Node.js 提供了这个功能。
第 1 步 — 安装 rbenv
在这一步中,您将安装 rbenv 并确保它在引导时自动启动。 要在 macOS 上执行此操作,本教程将使用包管理器 Homebrew。
要使用 Homebrew 下载 rbenv
包,请运行以下命令:
brew install rbenv
这将安装 rbenv 和 [ruby-build] (https://github.com/rbenv/ruby-build) 插件。 该插件添加了rbenv install
命令,简化了新版Ruby 的安装过程。
接下来,您将命令 eval "$(rbenv init -)"
添加到您的 ~/.bash_profile
文件中,以便在您打开终端时自动加载 rbenv。 为此,请在您喜欢的文本编辑器中打开 .bash_profile
:
nano .bash_profile
将以下行添加到文件中:
~/.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 版本:
rbenv install -l
该命令的输出将是您可以选择安装的一长串版本。
对于本教程,安装 Ruby 2.6.3:
rbenv install 2.6.3
安装 Ruby 可能是一个漫长的过程,因此请准备好安装需要一些时间才能完成。
安装完成后,使用 global
子命令将其设置为 Ruby 的默认版本:
rbenv global 2.6.3
通过检查其版本号来验证 Ruby 是否已正确安装:
ruby -v
您的输出将如下所示:
Outputruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
要安装和使用不同版本的 Ruby,请使用不同版本号运行 rbenv
命令,例如 rbenv install 2.3.0
和 rbenv global 2.3.0
。
您现在已经安装了一个版本的 Ruby 并设置了默认的 Ruby 版本。 接下来,您将设置自己使用 Ruby 包和库,或 gems,然后您可以安装 Rails。
第 3 步 — 使用宝石
Gems 是 Ruby 库和程序的包,可以分布在整个 Ruby 生态系统中。 您使用 gem
命令来管理这些 gem。 在此步骤中,您将配置 gem
命令以准备 Rails 安装。
安装 gem 时,安装过程会生成本地文档。 这会为每个 gem 的安装过程增加大量时间,因此通过创建一个名为 ~/.gemrc
的文件来关闭本地文档生成,其中包含用于关闭此功能的配置设置:
echo "gem: --no-document" > ~/.gemrc
完成后,使用 gem
命令安装 Bundler,这是一个管理项目 gem 依赖项的工具。 这是 Rails 正常工作所必需的:
gem install bundler
你会看到这样的输出:
OutputFetching: bundler-2.0.2.gem Successfully installed bundler-2.0.2 1 gem installed
您可以使用 gem env
命令了解更多关于 gems 的环境和配置。 要查看已安装 gem 的位置,请使用 home
参数,如下所示:
gem env home
您将看到与此类似的输出:
/Users/sammy/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0
现在您已经设置并探索了 gem 工作流程,您可以自由安装 Rails。
第 4 步 — 安装 Rails
要安装 Rails,请使用 gem install
命令和 -v
标志来指定版本。 对于本教程,我们将使用版本 5.2.3
:
gem install rails -v 5.2.3
gem
命令安装您指定的 gem,以及每个依赖项。 Rails 是一个复杂的 Web 开发框架,具有许多依赖项,因此该过程需要一些时间才能完成。 最终,您会看到一条消息,说明 Rails 已安装,以及它的依赖项:
Output... Successfully installed rails-5.2.3 38 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 命令指向当前启用的 Ruby 版本使用的文件。 通过 rehash
子命令,rbenv 在该目录中维护 shim 以匹配服务器上每个已安装 Ruby 版本的每个 Ruby 命令。 无论何时安装新版本的 Ruby 或提供命令的 gem,例如 Rails,都应该使用 rehash
。
要重新散列 shims 的目录,请运行以下命令:
rbenv rehash
通过使用以下命令打印版本来验证您的 Rails 安装:
rails -v
您将看到已安装的 Rails 版本:
OutputRails 5.2.3
成功安装 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 会自动为您完成。 如果您的设置已经是最新的,您将获得类似于以下内容的输出:
OutputError: rbenv 1.1.2 already installed Error: ruby-build 20190615 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 启动:
~/.bash_profile
... 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。
结论
在本教程中,您在 macOS 上使用 rbenv 安装了 Ruby on Rails。 从这里,您可以通过我们的 如何在 Ruby 中编码系列了解更多关于 Ruby 编码的信息。 您还可以探索如何将 Ruby on Rails 与 PostgreSQL 而不是其默认的 sqlite3 数据库一起使用,它为您的应用程序提供了更多的可扩展性、集中化和稳定性。