前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu上安装Ruby和Sinatra

如何在Ubuntu上安装Ruby和Sinatra

原创
作者头像
物花无语
发布2018-08-06 11:48:28
1.6K0
发布2018-08-06 11:48:28
举报

介绍

如果选择几个词来定义Sinatra,那么肯定会是设计简洁,给人启发。这种项目构建的想法引领了很多项目的构建潮流——跨越不同的编程语言和平台的编程方案。

“新颖”的Web开发库Sinatra可以让您从头开始快速构建Web应用程序。与日益流行的Ruby on Rails框架不同,在Sinatra上创建的应用程序可以由单个文件组成,这块完全取决于Sinatra gem。

在这篇文章中,我们将学习如何在Ubuntu CVM上安装最新版本的官方Ruby解释器以及Sinatra Web应用程序开发库。之后,我们将创建一个示例项目并继续进行实际部署。要完成本教程,您必须拥有一台服务器,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器

安装Ruby和Sinatra

更新操作系统

首先,我们需要将默认组件升级到最新版本,以确保我们拥有最新的所有内容。更新软件源列表并升级已过时的应用程序:

sudo apt-get    update
sudo apt-get -y upgrade

获得基本的构建/开发工具

在继续安装目标应用程序之前,我们将使用默认的包管理器安装必要的开发工具包:build-essential。此软件包包含从源代码安装某些内容所需的工具。

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

sudo apt-get install -y build-essential

接下来,我们将获得常用的开发和部署相关工具,例如Git。运行以下命令以安装一些其他常用工具:

sudo apt-get install -y cvs subversion git-core mercurial

安装Ruby版本管理器(RVM)

Ruby Version Manager(RVM)目标是使开发人员可以快速开始使用Ruby并使用它开发应用程序。

RVM不仅允许您同时使用多个版本的Ruby,而且它还带有内置工具来创建和使用虚拟环境。在RVM的帮助下,可以创建任意数量的完全隔离的gemsets,其中依赖项,软件包和默认的Ruby安装可以根据您的需求进行精心设计,并在不同的部署阶段之间进行相应的保证,要下载和安装RVM,请运行以下命令:

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

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

source /etc/profile.d/rvm.sh

安装Ruby

在下载RVM和配置系统环境之后,从现在开始使用Ruby所需要的只是从源实际安装Ruby这将由RVM处理。要使用RVM从源安装Ruby,请运行以下命令:

rvm reload
rvm install 2.1.0

安装Sinatra

一旦我们有RVM安装Ruby,我们可以使用默认的RubyGems包在我们的系统上设置Sinatra。RubyGems是默认的Ruby包管理器,它是一个很好的工具。

运行以下命令以使用gem安装Sinatra:

gem install sinatra

创建www用户组和部署用户

在我们完成所有安装之后,是时候进入基础并创建一个Linux组和一个用户来托管Web应用程序。为此,我们可以将我们的组命名为www,将用户命名为deployer。

添加新用户组:

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

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

# Create a new user:
# Usage: sudo adducer [user name]
# Follow on-screen instructions to user-related
# information such as the desired password.
sudo adduser deployer

# Add the user to an already existing group:
# Usage: sudo adducer [user name] [group name]
sudo adduser deployer www

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

sudo mkdir /var/www

并设置权限:

# Set the ownership of the folder to members of `www` group
sudo chown -R :www  /var/www

# Set folder permissions recursively
sudo chmod -R g+rwX /var/www

# Ensure permissions will affect future sub-directories etc.
sudo chmod g+s      /var/www

使用文本编辑器nano编辑/etc/sudoers以便给新用户部署sudo

nano /etc/sudoers

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

..

# User privilege specification
root    ALL=(ALL:ALL) ALL

..

root ALL=(ALL) ALL之后追加以下内容:

deployer ALL=(ALL:ALL) ALL

/etc/sudoers文件部分现在应如下所示:

..

# User privilege specification
root     ALL=(ALL:ALL) ALL
deployer ALL=(ALL:ALL) ALL

..

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

创建一个“Hello world!” 用于Sinatra测试

注意:下面是一个简短的教程,介绍如何为演示目的创建一个基于Sinatra的应用程序,该应用程序旨在用作我们的部署文章的示例。要获得有关使用Sinatra的更深入的知识,请查看官方的Sinatra:入门文档。

应用目录

让我们通过创建一个示例Hello world!应用程序的目录来开始我们的Sinatra之旅。

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

mkdir /var/www/my_app
cd    /var/www/my_app

RACK对文件层次结构做出了一些假设。因此,我们需要在应用程序文件旁边创建两个目录:tmppublic。让我们创建它们:

mkdir tmp
mkdir public
mkdir pids
mkdir logs

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

touch tmp/restart.txt

我们的最终申请结构:

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

示例应用文件

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

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

nano app.rb

复制并粘贴以下代码块:

require 'rubygems'
require 'sinatra/base'

class MyApp < Sinatra::Base

  get '/' do
    'Hello world!'
  end

end

按CTRL + X保存并退出并用Y确认。接下来,我们可以创建config.ru文件,Web应用程序服务器将用它来运行我们的程序。

运行以下命令,使用nano文本编辑器在应用程序目录内创建my_app

nano config.ru

复制并粘贴以下代码块:

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

按CTRL + X保存并退出并用Y确认。现在让我们创建我们的Gemfile:

nano Gemfile

复制并粘贴以下代码块:

source 'https://rubygems.org'
gem 'rack'
gem 'sinatra'

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

并使用bundle执行这些gem的安装:

bundle install

测试应用程序(机架)

为了测试您的应用程序,您只需使用rackup运行测试服务器即可。运行以下命令以启动测试服务器:

rackup config.ru --port=8080

# Hello world!

# To turn off the test server, press CTRL+C

结论

虽然我们已经介绍了创建Sinatra应用程序的基础知识,但出于部署目的,您需要服务器处理来自开发计算机的源代码,以使您的应用程序联机。因此,您需要将应用程序的存储库(即源代码)放入(即上传)到CVM上。您可以使用FTP方式或者SFTP方式上传,或者使用一劳永逸的方法通过SSHFS远程挂载文件夹,方便远程coding!。更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Install Ruby 2.1.0 And Sinatra On Ubuntu 13 With RVM》

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 安装Ruby和Sinatra
    • 更新操作系统
      • 获得基本的构建/开发工具
        • 安装Ruby版本管理器(RVM)
          • 安装Ruby
            • 安装Sinatra
              • 创建www用户组和部署用户
              • 创建一个“Hello world!” 用于Sinatra测试
                • 应用目录
                  • 示例应用文件
                  • 结论
                  相关产品与服务
                  测试服务
                  测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档