在CVM上使用rbenv安装RoR

简介

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。 其通过使用Ruby编程语言结合Rails开发框架,可以简化应用程序开发。

rbenv工具可以非常方便的安装和管理Ruby和Rails。使用rbenv将为您提供开发Ruby on Rails应用程序的可靠环境,因为它可以让您根据需要在Ruby版本之间自由切换。

rbenv支持指定任意版本的Ruby,允许您为用户更改全局Ruby,并允许您使用环境变量来覆盖Ruby版本。

准备

本教程将引导您完成Ruby和Rails安装过程。您将需要一台安装了Ubuntu的服务器,没有服务器的同学可以在这个页面购买。

更新并安装依赖项

首先,我们要更新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以便从Git克隆rbenv,

sudo apt-get install git-core

一旦我们安装了所有必需的系统依赖,我们就可以继续安装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

您的终端应显示以下内容:

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
}

为了简化Ruby安装,你应该安装ruby-build,我们将通过Git安装为rbenv的插件:

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

安装Ruby

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

rbenv install -l

该命令的输出应该是可安装的版本号。我们现在将安装特定版本的Ruby。安装Ruby是一个漫长的过程,请您保持耐心。作为一个例子,让我们安装Ruby版本2.3.3:

rbenv install 2.3.3

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

安装可能需要一些时间。安装完成后,您应该收到类似的输出

(其中sammy是用户的名称):

-> 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版,命令输出应该是这样的:

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

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

使用Gem

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

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

安装过程完成后,您应该看到如下的输出:

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

您可以使用gem env命令(env是子命令environment的简称)来了解有关gem的环境和配置的更多信息。您可以使用home参数检查安装Gem的位置,该参数将显示服务器上安装Gem的路径。

gem env home

您的输出应如下所示:

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

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

安装Rails

您可以使用gem install命令安装最新版本的Rails :

gem install rails

如果您想安装特定版本的Rails,可以通过搜索列出Rails的有效版本。然后我们可以安装特定版本,如4.2.7:

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

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

rbenv rehash

由于在安装成功后没有提示,我们可以通过使用以下命令来验证Rails是否已正确安装:

rails -v

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

安装JavaScript Runtime

一些Rails功能(例如Asset Pipeline)依赖于JavaScript Runtime。我们将安装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之后,,我们就可以通过less输入q退出。

现在可以安装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-build插件子命令自动执行删除。例如我们安装了Ruby 2.1.3,输入uninstall将其卸载:

rbenv uninstall 2.1.3

使用rbenv uninstall命令,您可以清理任意版本的Ruby。

赶快买一台服务器去尝试下吧:https://cloud.tencent.com/product/cvm


参考文献:《How To Install Ruby on Rails with rbenv on Debian 8》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术专栏

HBase 在Linux&Mac 下的安装和配置

详情参考 http://hbase.apache.org/book.html#quickstart

27910
来自专栏技术支持log

GET 和 POST 请求 http 站点时数据是否加密?

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

55810
来自专栏IT笔记

JavaWeb项目架构之NFS文件服务器

NFS简介 NFS(Network File System)即网络文件系统。 主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录。 主要用途:N...

58760
来自专栏王磊的博客

Ubuntu下安装配置JDK1.7

1、下载JDK 对于下载方法,可以使用命令,也可以手动下载。本人采用手动下载jdk的方式。 下载jdk-7u7-linux-i586.tar.gz到Ubuntu...

31740
来自专栏深度学习之tensorflow实战篇

解决SSH连接linux中文显示乱码问题

添加windows下mysql服务 以管理员身份打开cmd,执行 mysqld –install net stop mysql 忘记密码找回 找到m...

51050
来自专栏Python研发

linux基本命令

   ifconfig(查看系统ip) root(超级用户)     passwd(设置密码)     username(用户名)        (加目录用~表...

11020
来自专栏问天丶天问

eclipse 运行springboot项目

46230
来自专栏hbbliyong

Ubuntu 安装 JDK8 的两种方式

ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgra...

1.3K90
来自专栏noteless

springmvc 项目完整示例03 小结

一般一个项目,主要有domain,dao,service,controller这几个层次,具体的真不清楚的话可以百度一下

36420
来自专栏Albert陈凯

Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

离线数据分析平台实战——020Hadoop Shell命令(可跳过) Hadoop Shell命令简单描述 Hadoop的Shell命令主要分为两类: 一类是启...

34450

扫码关注云+社区

领取腾讯云代金券