如何在Debian8上使用rbenv安装RubyonRails

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

介绍

对于希望创建网站和 Web 应用程序的开发人员来说,最受欢迎的应用程序堆栈之一是 Ruby on Rails。 通过使用 Ruby 编程语言与 Rails 开发框架相结合,简化了应用程序开发。

命令行工具 rbenv 允许您安装和管理 Ruby 和 Rails。 使用 rbenv 将为您提供一个可靠的环境来开发您的 Ruby on Rails 应用程序,因为它可以让您根据需要在 Ruby 版本之间移动,使您的整个团队保持在相同的版本上。 项目存储库位于 GitHub

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

    1. 先决条件

本教程将带您完成在 Debian 8 上通过 rbenv 安装 Ruby 和 Rails 的过程。 To follow this tutorial, you need to have one Debian 8 server with a [non-root user] (initial-server-setup-with-debian-8).

    1. 更新和安装依赖

首先,我们应该更新 apt-get,因为这是我们将在此会话中第一次使用 apt。 这将确保更新本地包缓存。

sudo apt-get update

接下来,让我们使用 apt-get 安装 rbenv 和 Ruby 所需的依赖项:

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

因为我们将从 Git 克隆 rbenv,所以我们也将安装 Git:

sudo apt-get install git-core

一旦我们安装了所有必需的系统依赖项,我们就可以继续安装 rbenv 本身。

    1. 安装rbenv

现在我们准备安装 rbenv。 让我们从 Git 克隆 rbenv 存储库。 您应该从计划运行 Ruby 的用户帐户完成这些步骤。

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

从这里,您应该将 ~/.rbenv/bin 添加到您的 $PATH 以便您可以使用 rbenv 的命令行实用程序。 还将 ~/.rbenv/bin/rbenv init 添加到 ~/.bash_profile 将让您自动加载 rbenv。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

接下来,输入 rbenv 源代码:

 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
}

为了使用 rbenv install 命令,简化新版本 Ruby 的安装过程,您应该安装 [ruby-build] (https://github.com/rbenv/ruby-build[ X179X]),我们将通过 Git 将其安装为 rbenv 的插件:

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

此时,您应该已经安装了 rbenv 和 ruby-build,我们可以继续安装 Ruby。

    1. 安装红宝石

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

rbenv install -l

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

我们现在将安装特定版本的 Ruby。 请务必记住,安装 Ruby 可能是一个漫长的过程,因此请准备好安装需要一些时间才能完成。

作为示例,让我们安装 Ruby 版本 2.3.3

rbenv install 2.3.3

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

安装过程可能需要一些时间。 安装完成后,您应该会收到类似的输出,其中 sammy 是用户名:

Output-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.bz2
Installing ruby-2.3.3...
Installed ruby-2.3.3 to /home/sammy/.rbenv/versions/2.3.3

现在使用 global 子命令将我们刚刚安装的版本设置为我们的默认版本:

rbenv global 2.3.3

使用 ruby 命令检查版本号,确认一切准备就绪:

ruby -v

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

Outputruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]

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

    1. 使用宝石

Gems 是扩展 Ruby 功能的包。 我们将希望通过 gem 命令安装 Rails。

为了减少安装 Rails 的过程,我们将为我们安装的每个 gem 关闭本地文档。 我们还将安装 bundler gem 来管理应用程序依赖项:

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

安装过程完成后,您应该会收到类似的输出:

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

您可以使用 gem env 命令(子命令 envenvironment 的缩写)详细了解 gems 的环境和配置。 您可以使用 home 参数检查 gem 的安装位置,该参数将显示 gem 安装在服务器上的路径。

gem env home

您的输出应如下所示:

/home/sammy/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0

一旦我们设置了 gems,我们就可以继续安装 Rails。

    1. 安装导轨

作为同一用户,您可以使用 gem install 命令安装最新版本的 Rails:

gem install rails

您将在整个安装过程中收到输出,并确认 Rails 最终安装成功。

如果您想安装特定版本的 Rails,您可以通过搜索列出 Rails 的有效版本,这将输出一长串可能的版本。 然后我们可以安装一个特定的版本,比如4.2.7

gem search '^rails$' --all
gem install rails -v 4.2.7

rbenv 通过创建 shims 目录来工作,该目录指向当前启用的 Ruby 版本使用的文件。 通过 rehash 子命令,rbenv 在该目录中维护 shim 以匹配服务器上每个已安装 Ruby 版本的每个 Ruby 命令。 每当您安装新版本的 Ruby 或提供命令的 gem 时,您应该运行:

rbenv rehash

由于成功时没有输出,我们可以通过打印版本来验证 Rails 是否已正确安装,使用以下命令:

rails -v

如果安装正确,您将看到已安装的 Rails 版本。 我们现在可以继续设置我们的 Ruby on Rails 环境。

    1. 安装 JavaScript 运行时

一些 Rails 功能,例如资产管道,依赖于 JavaScript 运行时。 我们将安装 Node.js 以提供此功能。

我们可以先移动到一个可写的目录,例如/tmp。 从那里,让我们通过将 Node.js 脚本输出到文件来验证它,然后使用 less 读取它:

cd /tmp
\curl -sSL https://deb.nodesource.com/setup_6.x -o nodejs.sh
less nodejs.sh

一旦我们对 Node.js 脚本感到满意,我们可以通过键入 q 退出 less

我们现在可以安装 NodeSource Node.js v6.x 存储库:

cat /tmp/nodejs.sh | sudo -E bash -

此处使用的 -E 标志将保留用户现有的环境变量。

安装完成后,我们可以使用 apt-get 来安装 Node.Js:

sudo apt-get install -y nodejs

此时,您可以开始测试您的 Ruby on Rails 安装并开始开发 Web 应用程序。

    1. 更新rbenv

由于我们使用 Git 手动安装了 rbenv,我们可以随时将我们的安装升级到最新版本:

cd ~/.rbenv
git pull

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

    1. 卸载 Ruby 版本

随着您下载更多版本的 Ruby,您可能会在 ~/.rbenv/versions 目录中积累比您想要的更多的版本。

使用 ruby-build 插件通过 uninstall 子命令自动执行删除过程。 例如,如果我们安装了 Ruby 2.1.3,输入以下内容将卸载它:

rbenv uninstall 2.1.3

使用 rbenv uninstall 命令你可以清理你的 Ruby 版本,这样你安装的就不会比你当前使用的多。

    1. 了解更多

我们在这里介绍了如何安装 rbenv 和 Ruby on Rails 的基础知识,以便您可以使用多个 Ruby 环境。 As your needs grow, you can also learn how to [scale Ruby on Rails applications across multiple servers] (how-to-scale-ruby-on-rails-applications-across-multiple-droplets-part-1).