如何在Ubuntu18.04上使用rbenv安装RubyonRails

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

介绍

Ruby on Rails 是最受希望创建网站和 Web 应用程序的开发人员欢迎的应用程序堆栈之一。 Ruby 编程语言与 Rails 开发框架相结合,使应用程序开发变得简单。

您可以使用命令行工具 rbenv 轻松安装 Ruby 和 Rails。 使用 rbenv 将为您提供一个可靠的环境来开发您的 Ruby on Rails 应用程序,因为它可以让您轻松切换 Ruby 版本,让您的整个团队保持在同一个版本上。

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

本教程将带您通过 rbenv 完成 Ruby 和 Rails 安装过程。

先决条件

要遵循本教程,您需要:

  • 按照Ubuntu 18.04初始服务器设置指南设置一台Ubuntu 18.04服务器,包括sudo非root用户和防火墙。
  • 使用官方 PPA 安装的 Node.js,如 如何在 Ubuntu 18.04 上安装 Node.js 中所述。 一些 Rails 功能,例如资产管道,依赖于 JavaScript 运行时。 Node.js 提供了这个功能。

第 1 步 – 安装 rbenv 和依赖项

Ruby 依赖于几个可以通过包管理器安装的包。 安装这些之后,您可以安装 rbenv 并使用它来安装 Ruby,

首先,更新您的软件包列表:

sudo apt update

接下来,安装安装 Ruby 所需的依赖项:

sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev

下载依赖项后,您可以安装 rbenv 本身。 将 rbenv 存储库从 GitHub 克隆到目录 ~/.rbenv 中:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

接下来,将 ~/.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
}

接下来,安装 [ruby-build] (https://github.com/rbenv/ruby-build) 插件。 本插件新增rbenv install命令,简化了新版Ruby的安装过程:

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

此时,您已经安装了 rbenv 和 ruby-build。 接下来让我们安装 Ruby。

第 2 步 – 使用 ruby-build 安装 Ruby

现在安装了 ruby-build 插件,您可以通过一个简单的命令安装 Ruby y 可能需要的版本。 首先,让我们列出所有可用的 Ruby 版本:

rbenv install -l

该命令的输出应该是您可以选择安装的一长串版本。

让我们安装 Ruby 2.5.1

rbenv install 2.5.1

安装 Ruby 可能是一个漫长的过程,因此请准备好安装需要一些时间才能完成。

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

rbenv global 2.5.1

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

ruby -v

如果您安装了 Ruby 2.5.1 版,则上述命令的输出应如下所示:

Outputruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

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

您现在至少安装了一个 Ruby 版本并设置了默认 Ruby 版本。 接下来,我们将设置 gems 和 Rails。

第 3 步 – 使用宝石

Gems 是 Ruby 库的分发方式。 您使用 gem 命令来管理这些 gem。 我们将使用这个命令来安装 Rails。

安装 gem 时,安装过程会生成本地文档。 这会为每个 gem 的安装过程增加大量时间,因此通过创建一个名为 ~/.gemrc 的文件来关闭本地文档生成,其中包含用于关闭此功能的配置设置:

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

Bundler 是一个管理项目 gem 依赖关系的工具。 接下来安装 Bundler gem。 因为 Rails 依赖它。

gem install bundler

你会看到这样的输出:

OutputFetching: bundler-1.16.2.gem (100%)
Successfully installed bundler-1.16.2
1 gem installed

您可以使用 gem env 命令(子命令 envenvironment 的缩写)详细了解 gems 的环境和配置。 您可以使用 home 参数查看 gem 的安装位置,如下所示:

gem env home

您将看到与此类似的输出:

/home/sammy/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0

一旦你设置了 gems,你就可以安装 Rails。

第 4 步 – 安装 Rails

要安装 Rails,请使用 gem install 命令和 -v 标志来指定版本。 对于本教程,我们将使用版本 5.2.0

gem install rails -v 5.2.0

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

Output...
Successfully installed rails-5.2.0
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 版本使用的文件。 通过 rehash 子命令,rbenv 在该目录中维护 shim 以匹配服务器上每个已安装 Ruby 版本的每个 Ruby 命令。 每当您安装新版本的 Ruby 或提供命令的 gem 时,就像 Rails 一样,您应该运行:

rbenv rehash

使用以下命令打印 Rails 版本,验证是否已正确安装 Rails:

rails -v

如果安装正确,您将看到已安装的 Rails 版本:

OutputRails 5.2.0

此时,您可以开始测试您的 Ruby on Rails 安装并开始开发 Web 应用程序。 让我们看看保持 rbenv 是最新的。

第 5 步 – 更新 rbenv

由于您使用 Git 手动安装了 rbenv,因此您可以随时使用 ~/.rbenv 目录中的 git pull 命令将安装升级到最新版本:

cd ~/.rbenv
git pull

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

第 6 步 – 卸载 Ruby 版本

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

例如,输入这个将卸载 Ruby 版本 2.1.3

rbenv uninstall 2.1.3

使用 rbenv uninstall 命令,您可以清理旧版本的 Ruby,这样您安装的内容不会超过当前使用的内容。

第 7 步 – 卸载 rbenv

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

为此,首先在编辑器中打开 ~/.bashrc 文件:

nano ~/.bashrc

从文件中查找并删除以下两行:

~/.bashrc

...
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

保存文件并退出编辑器。

然后使用以下命令删除 rbenv 和所有已安装的 Ruby 版本:

 rm -rf `rbenv root`

注销并重新登录以将更改应用到您的 shell。

结论

在本教程中,您安装了 rbenv 和 Ruby on Rails。 从这里,您可以了解有关使这些环境更加健壮的更多信息。

探索如何将 Ruby on Rails 与 PostgreSQLMySQL 而不是其默认的 sqlite3 数据库一起使用,这为您的应用程序提供了更多的可扩展性、集中化和稳定性。 随着需求的增长,您还可以学习如何 跨多个服务器 扩展 Ruby on Rails 应用程序。