如何在macOS上使用rbenv安装RubyonRails

来自菜鸟教程
跳转至:导航、​搜索

介绍

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 包,请运行以下命令:

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.0rbenv 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 数据库一起使用,它为您的应用程序提供了更多的可扩展性、集中化和稳定性。