如何使用 RVM 在 Ubuntu 13 上安装 Ruby 2.1.0 和 Sinatra

介绍


如果选择几个词来定义西纳特拉,他们肯定会是 inspirationalconcise. 这个小但显著的小项目导致了许多其他类似的项目的创建 - 在不同的编程语言和平台上。

与常见的Ruby on Rails框架不同,在Sinatra上创建的应用程序可以由单个文件组成,完全取决于Sinatra宝石。

在这篇DigitalOcean文章中,我们将学习如何在Ubuntu 13 dropplet上安装官方Ruby翻译器的最新可用版本(版本 2.1.0),以及Sinatra网络应用程序开发库。

词典


1. 安装 Ruby 和 Sinatra


  1. 更新操作系统
  2. 获取必要的构建/开发工具
  3. 安装 Ruby 版本管理器 (RVM)
  4. 安装 Ruby 2.1.0
  5. 安装 Sinatra
  6. 创建一个 www 用户组和一个部署用户

创建一个Hello world!应用程序与西纳特拉


  1. 应用程序目录
  2. 样本应用程序文件
  3. 测试应用程序 (rackup)

3、部署


** 注意: ** 本文是我们两部 Sinatra 系列的第一篇文章. 完成此篇文章后,要了解实际部署,请参阅 如何部署基于 Sinatra 的 Ruby Web 应用程序

安装 Ruby 和 Sinatra


更新操作系统


我们将通过准备我们的VPS来开始我们的教程,这意味着将其默认组件升级到最新的版本,以确保我们拥有最新的内容。

更新软件源列表并升级已过时的应用程序:

1aptitude update
2aptitude -y upgrade

获取必要的构建/开发工具


在继续安装我们的目标应用程序之前,我们将安装必要的开发工具包: build-essential 使用默认的包管理器 aptitude. 此包包含安装某些东西 from source 所需的工具。

运行以下命令来安装「build-essential」包:

1aptitude install -y build-essential

接下来,我们将获得常用的开发和部署相关工具,如Git。

运行以下命令来安装一些额外的常用的工具:

1aptitude install -y cvs subversion git-core mercurial

安装 Ruby 版本管理器(RVM)


Ruby Version Manager(或RVM)允许开发人员快速开始使用Ruby并使用它开发应用程序。

RVM 不仅允许您同时使用多个版本的 Ruby,而且还配备了内置的工具来创建和使用虚拟环境,称为 gemsets

** 注意:** 有关如何使用宝石集和如何使用 RVM 的更多信息,请参阅文章 如何使用 RVM 在 VPS 上管理 Ruby 安装和环境

若要下载和安装 RVM,请执行以下操作:

1curl -L get.rvm.io | bash -s stable

并使用 RVM shell 脚本创建系统环境:

1source /etc/profile.d/rvm.sh

安装 Ruby 2.1.0


从现在开始,在下载RVM和配置系统环境后,只需要使用Ruby 2.1.0(或任何其他版本)才能实际安装Ruby - 这是由RVM处理的。

若要使用 RVM 从源头安装 Ruby 2.1.0,请执行以下操作:

1rvm reload
2rvm install 2.1.0

安装 Sinatra


一旦我们有RVM安装Ruby,我们可以使用RubyGems包,它是默认的下载和安装Sinatra在我们的系统上。

运行以下命令来安装 Sinatra with gem:

1gem install sinatra

创建一个 www 用户组和一个部署用户


一旦我们完成了所有安装,是时候进入基本知识,并创建一个Linux组和一个用户来托管Web应用程序。

添加新用户组:

1# Usage: sudo addgroup [group name]
2sudo addgroup www

创建一个新用户并将其添加到该组:

1# Create a new user:
2# Usage: sudo adducer [user name]
3# Follow on-screen instructions to user-related
4# information such as the desired password.
5sudo adduser deployer
6
7# Add the user to an already existing group:
8# Usage: sudo adducer [user name] [group name]
9sudo adduser deployer www

现在在 /var 目录中创建应用程序文件夹:

1sudo mkdir /var/www

然后设置许可证:

1# Set the ownership of the folder to members of `www` group
2sudo chown -R :www  /var/www
3
4# Set folder permissions recursively
5sudo chmod -R g+rwX /var/www
6
7# Ensure permissions will affect future sub-directories etc.
8sudo chmod g+s      /var/www

使用文本编辑器 nano 编辑 /etc/sudoers 以让用户 deployer sudo 进行未来的部署:

1nano /etc/sudoers

向下滚动并找到root定义的位置:

1..
2
3# User privilege specification
4root ALL=(ALL:ALL) ALL
5
6..

在「根 ALL=(ALL) ALL」后,附上下列字母:

1deployer ALL=(ALL:ALL) ALL

此「/etc/sudoers」文件的部分现在应该是这样的:

1..
2
3# User privilege specification
4root ALL=(ALL:ALL) ALL
5deployer ALL=(ALL:ALL) ALL
6
7..

按 CTRL + X 并用 Y 确认保存和退出。

创建一个Hello world!应用程序与西纳特拉


** 注:** 以下是关于创建一个基于 Sinatra 的两页应用程序的简短教程,用于演示目的,旨在作为我们的部署文章的示例。

应用程序目录


让我们通过创建一个目录来开始我们的西纳特拉之旅,以托管我们的样本你好,世界!应用程序。

运行以下命令来创建应用程序目录:

1mkdir /var/www/my_app
2cd    /var/www/my_app

因此,我们需要在我们的应用程序文件旁边创建另外两个目录:‘tmp’和‘public’。

让我们创建它们:

1mkdir tmp
2mkdir public
3mkdir pids
4mkdir logs

并添加一个restart.txt,以便应用程序服务器稍后使用:

1touch tmp/restart.txt

我们的最终应用结构:

1/my_app                    # /var/www/my_app
2   |-- /public             # Static files (and for Passenger server)
3   |-- /tmp              
4         |-- restart.txt   # Application restart / reload file
5   |-- /pids               # PID files
6   |-- /logs               # Log files
7   |-- config.ru           # Rack file (for servers)
8   |-- app.rb              # Application module

** 注意:** 要了解不同的 Ruby Web 应用程序服务器,并了解 Rack 是什么,请参阅我们的文章 对比 Ruby Web 应用程序的 (Rack) Web 服务器

样本应用文件


现在,我们可以开始构建一个Hello world!应用程序。

运行以下命令,在应用程序目录中使用 nano 文本编辑器创建app.rb:

1nano app.rb

复制并粘贴下面的代码块:

 1require 'rubygems'
 2require 'sinatra/base'
 3
 4class MyApp < Sinatra::Base
 5
 6  get '/' do
 7    'Hello world!'
 8  end
 9
10end

保存和退出,按 CTRL + X 并用 Y 确认。

接下来,我们可以创建我们的config.ru文件,Web应用程序服务器将使用它来运行我们的程序。

运行以下命令,使用 nano 文本编辑器在应用程序目录中创建config.ru:

1nano config.ru

复制并粘贴下面的代码块:

1require File.expand_path('../app.rb', __FILE__)
2use Rack::ShowExceptions
3run MyApp.new

保存和退出,按 CTRL + X 并用 Y 确认。

现在让我们创建我们的 Gemfile:

1nano Gemfile

复制并粘贴下面的代码块:

1source 'https://rubygems.org'
2gem 'rack'
3gem 'sinatra'

保存和退出,按 CTRL + X 并用 Y 确认。

并使用包裹进行这些宝石的安装:

1bundle install

测试应用程序(rackup)


为了测试您的应用程序,您可以简单地使用rackup运行测试服务器。

运行以下命令来启动测试服务器:

1rackup config.ru --port=8080
2
3# Hello world!
4
5# To turn off the test server, press CTRL+C

部署


虽然我们已经涵盖了创建 Sinatra 应用程序的基本知识,但为了部署,您将从您的开发计算机中处理源代码,以便在网上获取您的应用程序。

以下是您在继续使用我们的 Sinatra 部署文章之前可以实现的一些方法:

** 注意:** 请务必注意某些服务器设置的部署的文件/文件夹权限. 要了解实际的 Web 部署,请参阅我们关于主题的文章 如何部署基于 Sinatra 的 Ruby Web 应用程序

Submitted by: O.S. Tezer
Published At
Categories with 技术
comments powered by Disqus