RVMを使用してUbuntu13にRuby2.1.0とSinatraをインストールする方法
序章
シナトラを定義するためにいくつかの単語が選択された場合、それらは間違いなくインスピレーションおよび簡潔になります。 この小さいながらも注目に値する小さなプロジェクトは、さまざまなプログラミング言語やプラットフォームにまたがる、他の多くの同様のプロジェクトの作成への道を開きました。
「上品な」Web開発ライブラリSinatraを使用すると、Webアプリケーションを最初からすばやく構築できます。 非常に人気のあるRubyonRailsフレームワークとは異なり、Sinatraで作成されたアプリケーションは、Sinatraの宝石にのみ依存して、単一のファイルで構成できます。
このDigitalOceanの記事では、Sinatra Webアプリケーション開発ライブラリとともに、Ubuntu 13ドロップレットに公式のRubyインタープリター(v 2.1.0)の最新バージョンをインストールする方法を学習します。 その後、サンプルプロジェクトを作成し、実際の展開を続行します。
用語集
1. RubyとSinatraのインストール
- オペレーティングシステムの更新
- 不可欠なビルド/開発ツールの入手
- Rubyバージョンマネージャー(RVM)のインストール
- Ruby2.1.0のインストール
- Sinatraのインストール
- wwwユーザーグループとデプロイヤーユーザーの作成
2. Sinatraを使用して「Helloworld!」アプリケーションを作成する
- アプリケーションディレクトリ
- サンプルアプリケーションファイル
- アプリケーションのテスト(ラックアップ)
3. 展開
注:この記事は、2ピースのシナトラシリーズの最初の記事です。 これを終えた後、実際の展開について学ぶために、SinatraベースのRubyWebアプリケーションを展開する方法をチェックしてください。
RubyとSinatraのインストール
オペレーティングシステムの更新
チュートリアルは、VPSを準備することから始めます。つまり、デフォルトのコンポーネントを最新バージョンにアップグレードして、すべてが最新であることを確認します。
ソフトウェアソースリストを更新し、古いアプリケーションをアップグレードします。
aptitude update
aptitude -y upgrade
不可欠なビルド/開発ツールの入手
ターゲットアプリケーションのインストールを続行する前に、デフォルトのパッケージマネージャーを使用して必須の開発ツールパッケージbuild-essentialをインストールします。 aptitude
. このパッケージには、ソースから特定のものをインストールするために必要なツールが含まれています。
次のコマンドを実行してインストールします build-essential
パッケージ:
aptitude install -y build-essential
次に、Gitなどの一般的に使用される開発およびデプロイメント関連のツールを取得します。
次のコマンドを実行して、一般的に使用される追加のツールをインストールします。
aptitude install -y cvs subversion git-core mercurial
Rubyバージョンマネージャー(RVM)のインストール
Rubyバージョンマネージャー(またはRVM)を使用すると、開発者はRubyの使用をすばやく開始し、Rubyを使用してアプリケーションを開発できます。
RVMを使用すると、Rubyの複数のバージョンを同時に操作できるだけでなく、gemsetsと呼ばれる仮想環境を作成および操作するための組み込みツールも付属しています。 RVMの助けを借りて、依存関係、パッケージ、およびデフォルトのRubyインストールがニーズに合わせて作成され、展開のさまざまな段階間で適切に維持される、完全に分離された自己完結型のgemsetをいくつでも作成できます。どこにいても同じように動作します。
注: gemsetの操作方法とRVMの使用方法の詳細については、記事RVMを使用してVPSでRubyのインストールと環境を管理する方法をご覧ください。
RVMをダウンロードしてインストールするには、次のコマンドを実行します。
curl -L get.rvm.io | bash -s stable
また、RVMシェルスクリプトを使用してシステム環境を作成するには、次の手順に従います。
source /etc/profile.d/rvm.sh
Ruby2.1.0のインストール
これからRuby2.1.0(または他のバージョン)で動作するために必要なのは、RVMをダウンロードしてシステム環境を構成した後、RVMによって処理されるソースからのRubyの実際のインストールだけです。
RVMを使用してソースからRuby2.1.0をインストールするには、以下を実行します。
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
編集 /etc/sudoers
テキストエディタnanoを使用してユーザーに deployer
将来の展開のための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で確定して保存して終了します。
「Helloworld!」の作成シナトラによるアプリケーション
注:以下は、展開記事の例として使用することを目的とした、デモンストレーション用の2ページのSinatraベースのアプリケーションの作成に関する短いチュートリアルです。 Sinatraの操作に関するより深い知識を得るには、公式の Sinatra:GettingStartedドキュメントを確認してください。
アプリケーションディレクトリ
サンプルをホストするディレクトリを作成して、シナトラの旅を始めましょう Hello world!
応用。
次のコマンドを実行して、アプリケーションディレクトリを作成します。
mkdir /var/www/my_app
cd /var/www/my_app
RACKは、ファイル階層に関して特定の仮定を行います。 したがって、アプリケーションファイルと一緒にさらに2つのディレクトリを作成する必要があります。 tmp
と public
.
それらを作成しましょう:
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
注:さまざまなRuby Webアプリケーションサーバーについて学び、 Rack とは何かを理解するには、記事 Ruby Webアプリケーション用の(Rack)Webサーバーの比較を確認してください。 ]。
サンプルアプリケーションファイル
これで、構築を開始できます Hello world!
応用。
次のコマンドを実行して、 app.rb
アプリケーションディレクトリ内 my_app
nanoテキストエディタの使用:
nano app.rb
以下のコードブロックをコピーして貼り付けます。
require 'rubygems'
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
'Hello world!'
end
end
CTRL + Xを押し、Yで確定して、保存して終了します。
次に、 config.ru
Webアプリケーションサーバーがプログラムの実行に使用するファイル。
次のコマンドを実行して、 config.ru
アプリケーションディレクトリ内 my_app
nanoテキストエディタの使用:
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
:
bundle install
アプリケーションのテスト(ラックアップ)
アプリケーションをテストするには、次を使用してテストサーバーを実行するだけです。 rackup
.
次のコマンドを実行して、テストサーバーを起動します。
rackup config.ru --port=8080
# Hello world!
# To turn off the test server, press CTRL+C
展開
Sinatraアプリケーションの作成の基本については説明しましたが、展開の目的で、開発用コンピューターマシンからのソースコードを処理して、アプリケーションをオンラインにします。 したがって、あなたは置く必要があります(すなわち アップロード)アプリケーションのリポジトリ(つまり ドロップレットのソースコード)。
Sinatraの導入に関する記事を続ける前に、これを実現する方法をいくつか紹介します。
注:特定のサーバー設定を使用した展開では、ファイル/フォルダーのアクセス許可に注意してください。 実際のWeb展開については、SinatraベースのRubyWebアプリケーションを展開する方法に関する記事を確認してください。