如何在Ubuntu 16.04与rbenv安装Ruby on Rails的

Ruby on Rails是为开发人员希望创建网站和Web应用程序最流行的应用程序栈之一。您可以轻松地使用命令行工具rbenv安装Ruby和Rails。使用rbenv将为您提供为on Rails应用程序开发的Ruby,因为它可以让你轻松切换Ruby版本,使您的整个团队在同一个版本了坚实的环境。

介绍

Ruby on Rails是面向开发者创建网站和网络应用程序最流行的应用程序栈之一。 Ruby编程语言与Rails开发框架相结合,使应用程序开发变得简单。

您可以轻松地使用命令行工具rbenv安装Ruby和Rails。 使用rbenv将为开发您的Ruby on Rails应用程序提供一个坚实的环境,因为它将允许您轻松地切换Ruby版本,使整个团队保持相同的版本。 项目库位于GitHub上

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

先决条件

本教程将带您通过rbenv进行Ruby和Rails安装过程。 要学习本教程,你需要有一个Ubuntu的16.04服务器以非root用户

更新和安装依赖关系

首先,我们应该更新apt-get ,因为这是第一次,我们将使用apt在这个环节。 这将确保本地软件包缓存更新。

sudo apt-get update

接下来,让我们安装rbenv和Ruby提供所需的依赖apt-get

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

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

安装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

您可以检查是否rbenv成立正确使用type命令,该命令将显示rbenv的详细信息:

type rbenv

您的终端窗口应输出以下内容:

rbenv 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版本 ,我们将安装用于通过git的rbenv插件:

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

在这一点上,您应该同时安装rbenv和ruby-build,我们可以继续安装Ruby。

安装Ruby

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

rbenv install -l

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

我们现在将安装一个特定版本的Ruby。 重要的是要记住,安装Ruby可能是一个漫长的过程,所以准备安装需要一些时间来完成。

这里作为例子,让我们安装Ruby 2.3.1版,而一旦它完成安装,我们可以将它作为我们的默认版本global子命令:

rbenv install 2.3.1
rbenv global 2.3.1

如果您想安装并使用不同的版本,只需运行rbenv用不同的版本号命令,在rbenv install 2.3.0rbenv global 2.3.0

通过检查您的版本号验证Ruby已正确安装:

ruby -v

如果你安装的版本2.3.1的Ruby,你的输出到上面的命令应该看起来像这样:

ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

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

使用Gem

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

为了使安装Rails的过程不那么冗长,我们将关闭我们安装的每个gem的本地文档。 我们还将安装bundler gem来管理应用程序依赖:

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

你可以使用gem env命令(子命令env是短期的environment ),以了解更多关于Gem的环境和配置。 您可以检查Gem的地方正在使用安装位置home的说法,这将显示路径到Gem安装在服务器上。

$ gem env home

您的输出应该是这个样子,与sammy是用户的名称:

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

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

安装Rails

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

gem install rails

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

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

rbenv作品通过创建垫片的目录,这点由当前已启用了Ruby版本所使用的文件。 通过rehash子命令,rbenv保持在该目录在服务器上的Ruby各地的每一个安装的版本每个Ruby命令匹配垫片。 每当你安装一个新版本的Ruby或一个gem提供命令,你应该运行:

rbenv rehash

使用此命令打印其版本,验证Rails已正确安装:

rails -v

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

安装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脚本感到满意,我们可以安装NodeSource Node.js v6.x repo:

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

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

现在我们可以使用apt-get安装Node.js的:

sudo apt-get install -y nodejs

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

更新rbenv

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

cd ~/.rbenv
git pull

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

卸载Ruby版本

当你下载更多版本的Ruby,可以积累更多的版本比你想在你的~/.rbenv/versions目录。

使用Ruby构建插件删除过程与自动uninstall子命令。 例如,键入这将卸载的Ruby版本2.1.3:

rbenv uninstall 2.1.3

随着rbenv uninstall命令,您可以清理你的Ruby版本,让你不必比您目前使用较多的安装做。

学习更多

我们已经介绍了如何在这里安装rbenv和Ruby on Rails的基础知识,以便您可以使用多个Ruby环境。 为了接下来的步骤,您可以了解有关使这些环境更加强大的更多信息。 欲了解更多的可扩展性,集中化和控制您的Ruby on Rails应用程序,你可能要与使用它的PostgreSQLMySQL的 ,而不是其默认sqlite3的数据库。 随着需求的增长,还可以学习如何在跨多个服务器的Rails应用程序扩展Ruby