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
不可欠なビルド/開発ツールの入手
ターゲットアプリケーションのインストールを続行する前に、デフォルトのパッケージマネージャーaptitude
を使用して、必須の開発ツールパッケージbuild-essentialをインストールします。 このパッケージには、ソースから特定のものをインストールするために必要なツールが含まれています。
次のコマンドを実行して、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
テキストエディタnanoを使用して/etc/sudoers
を編集し、ユーザー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!
アプリケーションをホストするディレクトリを作成することから、Sinatraの旅を始めましょう。
次のコマンドを実行して、アプリケーションディレクトリを作成します。
mkdir /var/www/my_app cd /var/www/my_app
RACKは、ファイル階層に関して特定の仮定を行います。 したがって、アプリケーションファイルと一緒にtmp
とpublic
の2つのディレクトリを作成する必要があります。
それらを作成しましょう:
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!
アプリケーションの構築を開始できます。
次のコマンドを実行して、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で確定して、保存して終了します。
次に、Webアプリケーションサーバーがプログラムの実行に使用するconfig.ru
ファイルを作成できます。
次のコマンドを実行して、nanoテキストエディタを使用してアプリケーションディレクトリmy_app
内にconfig.ru
を作成します。
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アプリケーションの作成の基本については説明しましたが、展開の目的で、開発用コンピューターマシンからのソースコードを処理して、アプリケーションをオンラインにします。 したがって、あなたは置く必要があります(すなわち アップロード)アプリケーションのリポジトリ(つまり ドロップレットのソースコード)。
Sinatraの導入に関する記事を続ける前に、これを実現する方法をいくつか紹介します。
注:特定のサーバー設定を使用した展開では、ファイル/フォルダーのアクセス許可に注意してください。 実際のWeb展開については、SinatraベースのRubyWebアプリケーションを展開する方法に関する記事を確認してください。