Rails 5の環境構築
ここまでRails 5の新機能/変更点について概要を確認しました。その他にもさまざまな変更点がありますが、詳細は公式のリリースノートを参照してください。また、今回紹介しなかった変更点についても、次回以降、アプリケーションを実装していく中で紹介していく予定です。
では、以降では、Rails 5の環境構築を行っていきます。
前提条件
- MacBook Pro OS X Yosemite
- Xcodeインストール済
- OS X用パッケージマネージャHomebrew最新版をインストール済
- 最新版でない場合はbrew updateしてください。
- Gitをインストール済
環境構築手順概要
以下の手順で環境構築を行います。本稿では、Ruby on Rails 5のインストールまでを行います。
- rbenvインストール
- Ruby 2.3.1インストール
- PostgreSQLインストール
- Bundlerインストール
- Ruby on Rails 5インストール(本稿ではここまで)
- Railsプロジェクトの作成
- データベース作成
- pumaサーバーの起動
rbenvインストール
rbenvとは、同一環境内でRubyの複数のバージョンを管理するためのものです。Rubyはバージョンが違うと環境構築にいろいろはまりどころが多いので、システムワイドにRubyをインストールするのではなく、rbenvを使用してRubyのバージョンを管理することを強くおすすめします。
Homebrewでrbenvとそのプラグインのruby-buildをインストールします。
$ brew install rbenv ruby-build echo ‘export PATH="$HOME/.rbenv/bin:$PATH"’ > ~/.bash_profile echo ‘if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi’ > ~/.bash_profile
なお、ruby-buildはプラグインといってもRubyをインストールするために必要なrbenv installコマンドを提供するものです。rbenvとセットでインストールする必要があります。
また、新しいRubyのバージョンをインストールしたい場合、ruby-buildのバージョンが古いと、インストール可能なパッケージがないとエラーが出ることがあります。
この場合はruby-buildを最新にしてください。
Ruby 2.3.1のインストール
記事執筆時点で最新の安定版であるRuby 2.3.1をインストールします。
インストール対象のバージョンがあることを確認します。
$ rbenv install --list
Available versions: 1.8.5-p113 (略) 2.3.0 2.3.1 2.4.0-dev 2.4.0-preview1 (略)
ここでもし2.3.1が見当たらないようでしたら、前述の通り、ruby-buildが古い可能性があります。ruby-buildをアップデートしましょう。
Ruby 2.3.1をインストールします。
$ rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2 Installing ruby-2.3.1... Installed ruby-2.3.1 to /Path/To/User/.rbenv/versions/2.3.1
インストールが完了していれば以下のコマンドで、該当OS上で使用可能なRubyのバージョンの中に2.3.1が入っていることが確認できます。
$ rbenv versions
* system (set by /Path/To/User/.rbenv/version) 2.3.1
あとで必要となるRailsアプリケーション用のディレクトリを作成し、そこで使用するRubyのバージョンを設定します。本稿では、プロジェクト名をrails5_sampleとしてすすめます。
$ mkdir rails5_sample # 作成したプロジェクト用ディレクトリに移動します。 $ cd rails5_sample # プロジェクトローカルでは動作するRubyのバージョンが2.3.1となるように設定します。 $ rbenv local 2.3.1
実行の結果、バージョンが記載された.ruby-versionファイルが生成されます。
Rubyのバージョンが2.3.1となっていることを確認します。
$ rbenv versions
system (set by /Path/To/User/.rbenv/version) * 2.3.1 (set by /Path/To/User/rails5_sample/.ruby-version)
このように、アスタリスクが2.3.1についていれば2.3.1が選択されていることになります。
PostgreSQLインストール
本稿では、RDBMSとしてPostgreSQLを使用します。
HomebrewでPostgreSQLをインストールします。
$ brew install postgresql
PostgreSQLを起動しておきます。
ここでは、Homebrewのサービス管理機能を使用して起動します。
$ brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
PostgreSQLクライアントのpsqlコマンドで接続可能なことを確認しておきます。
$ psql -l
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+-------------+-------------+--------------------- postgres | username | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | username | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/username + | | | | | username=CTc/username template1 | username | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/username + | | | | | username=CTc/username (3 rows)
Bundlerインストール
Railsの実践的な開発では、gemと呼ばれるサードパーティー製のライブラリをよく使用します。RubyGemsはライブラリを管理するための仕組みで、gemコマンドとして提供されています(ubuntuでいうところのapt-getのようなもの)。
gemは前述のRuby同様、システムワイドにインストールすることも可能ですが、同一システム内で別のバージョンのgemを使用するといったケースに対応することが難しくなります。
Bundlerは、この課題解決のためにあるgemパッケージを管理するためのライブラリです。Bundlerもgemパッケージとして提供されているため、Bundlerのみgemコマンドでインストールします。
$ gem install bundler
記事執筆時点では1.12.5がインストールされました。
Railsもまた、gemパッケージとして提供されているため、RailsもBundler経由でインストールします。Railsインストールについて解説しているWebサイトの中には、Railsをシステムワイドにインストールしている例が散見されます。この場合、Railsのバージョンを変更したい場合など面倒になる可能性があるので、注意が必要です。
Rails 5インストール
いよいよRails 5のインストールです。
作成したプロジェクト用ディレクトリに移動します。
$ cd rails5_sample # Bundlerの初期化を行います。 $ bundler init
Writing new Gemfile to /Path/To/User/rails5_sample/Gemfile
上記の通り、コマンドの結果、直下にGemfileが生成されます。デフォルトで生成されたGemfileではrailsの行がコメントアウトされているので、以下のようにコメントアウトを外します。
# frozen_string_literal: true # A sample Gemfile source "https://rubygems.org" gem "rails"
BundlerによりRailsをインストールします。
ここでは、オプションに--pathを指定しています。こうするとvendor/bundle配下にプロジェクトで使用するgemパッケージ群がインストールされます。一般的にRailsプロジェクトではvendor/bundle配下を指定します。
また、--jobsオプションを用いて、gemインストールを並列して行う数を指定できます。ここでは4並列を指定しています。
なお、bundle installコマンドを実行すると.bundle/configファイルが生成されます。
BUNDLE_PATH: vendor/bundle BUNDLE_JOBS: 4 BUNDLE_DISABLE_SHARED_GEMS: true
上記の通り、オプション指定が記録されているので、以降新しいgemを追加でインストールしたい場合はオプションを省略できます。
実際に実行すると以下の通りです。
$ bundle install --path vendor/bundle --jobs 4
プロジェクトローカル(vendor/bundle配下)にインストールされたRailsコマンドを使用するには、Bundlerを通じて呼び出す必要があります。たとえば、インストールされたRailsのバージョンを確認するには以下の通りです。
$ bundle exec rails -v
Rails 5.0.0.1
記事執筆時点では、セキュリティパッチがあてられ、2016年8月11日にリリースされた5.0.0.1が最新のバージョンです。
まとめ
本稿では、Railsの最新バージョンであるRails 5の目玉となる新機能や変更点について紹介し、Rails 5の開発環境を構築しました。
本連載では、Rails 5の新機能を利用したサンプルアプリケーションの実装を通じて新機能への理解を深めていきます。次回は、Railsプロジェクトとデータベースを作成しRails 5のWebサーバーを起動します。また、Railsのジェネレーターの1つであるscaffoldを使い、Railsの基本を再確認しつつ、変更点を解説します。