ウェブサイト検索

Debian 12にRuby on Railsをインストールする方法


Debian 12にRuby on Railsをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 12 (ブックワーム)
  • Debian 11 (バルセイヤ)
  • Debian 10 (バスター)

このページで

  1. 前提条件
  2. 依存関係のインストール
  3. Rbenvのインストール
  4. Rbenvを通じてRubyをインストールする
  5. Ruby on Railsのインストール
  6. 最初のRailsプロジェクトを作成する

    1. データベースユーザーを準備する
    2. Railsプロジェクトを作成する
  7. スターターキットのためのRailsスキャフォールディング
  8. 結論

Ruby on Rails(RoR)は、Rubyで書かれた無料でオープンソースのウェブアプリケーションフレームワークで、MITライセンスの下でリリースされています。Railsは、エンタープライズグレードのアプリケーションを簡単に構築するためのフルスタックWebフレームワークです。Railsには、開発者がフロントエンドとバックエンドのアプリケーションの両方を簡単に作成できるさまざまなツールが同梱されています。また、Ruby on Railsには、SQLインジェクション、XSS、CSRFなどの一般的な攻撃から保護するための組み込みのセキュリティ機能も備えられています。

Ruby on Railsは、データベース、HTMLテンプレート、ウェブサービス、ウェブページのためのデフォルトの構造を提供します。それはモデル-ビュー-コントローラー(MVC)アーキテクチャに従い、また「繰り返さない」(DRY)、設定よりも規約(CoC)、およびアクティブレコードパターンなどのよく知られたデザイン哲学を使用しています。Ruby on Railsは、迅速で使いやすく、学びやすいように設計されており、Twitch、Airbnb、Github、SoundcloudなどRailsで開発されたいくつかの注目すべきサイトがあります。

このガイドでは、Debian 12サーバーにRuby on Railsをインストールする手順を説明します。PostgreSQLデータベースサーバーとRbenv Rubyバージョンマネージャーを使用してRuby on Railsをインストールします。また、Railsプロジェクトの基本構造であるスキャフォールドも作成します。

前提条件

開始する前に、以下のことを確認してください:

  • Debian 12サーバー。
  • sudo管理者権限を持つ非ルートユーザー。

依存関係のインストール

最初のステップでは、Debianサーバーにいくつかの基本的な依存関係をインストールします。これには、Railsプロジェクトのデータベースとして使用されるPostgreSQLデータベースサーバー、node.js、およびRailsが静的アセットをコンパイルするために使用するYarnパッケージマネージャーが含まれます。

まず、以下のapt updateコマンドを実行してパッケージインデックスを更新し、リフレッシュします。

sudo apt update

次に、以下のapt installコマンドを使用して依存関係をインストールします。これには、PostgreSQLデータベースサーバー、libpqドライバー、Node.js、Yarn、Git、およびいくつかのシステムライブラリとツールが含まれます。

sudo apt install postgresql libpq-dev nodejs yarnpkg git zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev

yを入力して確認し、インストールを続行してください。

依存関係がインストールされたら、次のコマンドを使用してPostgreSQLサーバーの状態を確認してください。これにより、PostgreSQLが実行中であり、Debianマシンで有効になっていることが確認されます。

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

PostgreSQLが有効になっている場合は、出力として「有効」と表示されるべきです。PostgreSQLが実行中の場合は、出力として「アクティブ(実行中)」または「アクティブ(終了)」が表示されるべきです。

最後に、以下のコマンドを実行してNode.jsとYarnパッケージマネージャーを確認してください。

node --version
yarnpkg --version

この例では、Node.js 18 と Yarn 1.22 がインストールされています。

Rbenvのインストール

パッケージの依存関係をインストールした後、次のステップは、Unix系オペレーティングシステム用のRubyバージョンマネージャーであるRbenvをインストールすることです。Rbenvを使用すると、Rubyアプリの環境を簡単に管理できるほか、システムに複数のRubyバージョンをインストールすることもできます。

次のコマンドを使用してユーザーにログインしてください。

su - user

以下のgitコマンドを使って、rbenvのソースコードとruby-buildプラグインをダウンロードしてください。

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

次に、シェルにカスタムPATHを追加するためのコマンドを実行してください。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc

変更を適用するために、~/.bashrc の設定を再読み込みしてください。コマンドを実行した後、rbenv のインストールが有効になるはずです。

source ~/.bashrc

次の rbenv コマンドを実行して rbenv を確認してください。rbenv のインストールが成功していれば、利用可能な rbenv のコマンド/オプションが表示されるはずです。

rbenv commands

Rbenvを通じてRubyをインストールする

Rbenvをインストールすると、システムにRubyをインストールできるようになります。Rbenvを使用すると、現在の環境にのみRubyがインストールされ、システム全体には影響を与えません。Ruby 3.2.2を現在のユーザー環境にインストールします。

以下のrbenvインストールコマンドを実行して、システムにRuby 3.2.2をインストールしてください。

rbenv install 3.2.2

インストール中に、これが表示されるはずです:

Rubyがインストールされたら、次のコマンドを実行してデフォルトのRubyバージョンを3.2.2に設定します。

rbenv global 3.2.2

最後に、下記のコマンドを使用してシステム上のRubyのバージョンを確認してください。

ruby -v

すべてがうまくいけば、Ruby 3.2.2がインストールされているはずです。

Ruby on Railsのインストール

この時点で、あなたのシステムは設定されており、DebianマシンにRuby on Railsをインストールする準備が整いました。この例では、Ruby on Rails 7.0をインストールし、公式サイトで利用可能なRailsのバージョンリストを確認します。

以下のgemコマンドを実行してbundlerをインストールし、その後Ruby on Rails 7.0.7.2をインストールしてください。

gem install bundler
gem install rails -v 7.0.7.2

インストール中に、次のような出力が表示されるはずです:

次に、以下の rebenv コマンドを実行して、現在の環境を再ハッシュし再読み込みします。

rbenv rehash

最後に、Ruby on Rails がインストールされていることを確認するために、以下の rails コマンドを実行してください。

rails version
rails -h

インストールが成功すると、現在のRailsバージョンとrailsコマンドのヘルプページが表示されるはずです。

最初のRailsプロジェクトを作成する

このセクションでは、Ruby on Railsを使用して最初のプロジェクトを作成する方法を学びます。RailsプロジェクトのデフォルトデータベースとしてPostgreSQLを使用します。それを実現するためには、次の手順を完了する必要があります。

  • アプリケーションのためにPostgreSQLユーザーを準備しています。
  • 最初のRailsプロジェクトを作成する。

データベースユーザーを準備する

まず、Railsアプリケーションで使用する新しいPostgreSQLユーザーを作成する必要があります。このユーザーにはデータベースとユーザーを作成するための権限が必要です。

ユーザーアカウントに戻り、次のコマンドを使用してPostgreSQLサーバーにログインします。

sudo su
sudo -u postgres psql

新しいユーザーbobを作成し、パスワードp4sswordbobを設定します。次に、ユーザーbobにデータベースを作成し、ロールの新しい権限を付与します。

CREATE USER bob WITH PASSWORD 'p4sswordbob';
ALTER USER bob CREATEDB CREATEROLE;

下記のコマンドを使用して、PostgreSQLサーバー上のユーザーと権限のリストを確認してください。

\du

ユーザーbobがCREATEDBおよびCREATEROLEの権限を持っているはずです。

PostgreSQLサーバーからログアウトするには、\qと入力してください。

最後に、ユーザーにログインし、次のpsqlコマンドを実行して新しいユーザーbobとしてPostgreSQLサーバーにログインします。

su - user
psql -U bob -h 127.0.0.1 -d postgres

PostgreSQLサーバーに接続したら、接続情報を確認するために次のクエリを実行します。

\conninfo

あなたは、ユーザーbobとしてPostgreSQLサーバーに接続していることを確認できるはずです。

PostgreSQLサーバーから退出するには、\q と入力してください。

Railsプロジェクトを作成する

PostgreSQLユーザーを作成した後、railsコマンドラインユーティリティを使用して新しいRailsプロジェクトを作成できます。

新しいRailsプロジェクトを作成するには、以下のrailsコマンドを実行します。この例では、デフォルトのデータベースPostgreSQLを使用して、新しいプロジェクトtestappを作成します。

rails new testapp -d postgresql

コマンドの出力は次のようになるはずです:

プロジェクトが作成されると、新しいディレクトリ~/testappも作成されます。~/testappディレクトリに移動し、好みのテキストエディタを使ってデータベース設定config/database.ymlを開いてください。

cd testapp/
nano config/database.yml

開発、テスト、および本番用のデフォルトデータベース設定を変更します。PostgreSQLのユーザー名とパスワードを必ず入力してください。

development:
  <<: *default
  database: testapp_development
  # The specified database role is being used to connect to postgres.
  # To create additional roles in postgres see `$ createuser --help`.
  # When left blank, postgres will use the default role. This is
  # the same name as the operating system user running Rails.
  username: bob
  # The password associated with the postgres role (username).
  password: p4sswordbob
  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  host: localhost
  # The TCP port the server listens on. Defaults to 5432.
  # If your server runs on a different port number, change accordingly.
  port: 5432

作業が完了したら、ファイルを保存して終了してください。

以下のrailsコマンドを実行してデータベースを移行してください。これにより、あなたのtestappプロジェクトのために新しいデータベースが自動的に作成されます。

rails db:setup
rails db:migrate

下に、testappプロジェクトのデータベース移行中の出力が表示されるはずです。

データベースが移行された後、以下のrailsコマンドを実行してtestappプロジェクトを実行します。これにより、IPアドレスのポート3000でtestappが実行されます。

rails server -b 192.168.10.15

次の出力には、testapp が実行中であることが表示されるはずです。

お好みのウェブブラウザを起動し、サーバーのIPアドレスの後にポート3000を付けてアクセスします。例えば、http://192.168.10.15:3000/のようになります。インストールが成功していれば、Ruby on Railsのデフォルトのindex.htmlページが表示されるはずです。

Railsアプリケーションを終了するにはCtrl+cを押してください。

スターターキットのためのRailsスキャフォールディング

スキャフォールドは、コントローラー、モデル、ビューを含むRailsプロジェクトの基本構造を自動的に生成する方法です。

以下のRailsコマンドを実行して、3つのフィールドtitle、author、publication_yearを持つスカフォールドbooksを作成します。

rails g scaffold books title:string author:string publication_year:integer

今、以下のRailsコマンドを使用して変更を適用するためにデータベースを移行します。

rails db:migrate

次に、以下のrails serverコマンドを実行して、Railsプロジェクトを起動します。

rails server -b 192.168.10.15

testappが実行中になったら、URLパス/booksを介して本のスキャフォールドを確認します。たとえば、http://192.168.10.15:3000/booksのようにです。すべてがうまくいけば、次のような生成されたスキャフォールドが表示されるはずです:

以下のようにして、ブックの雛形に新しいデータを挿入できます。

結論

結論として、あなたはDebian 12サーバーにPostgreSQLデータベースサーバーとRbenvを使用してRuby on Railsのインストールを完了しました。また、Railsプロジェクトの基本構造のためのスキャフォールドを生成する方法も学びました。

関連記事: