そうだ、Rubyをやろう(9日目)
Ruby on Railsの開発環境を構築する
OS X 10.9.2, Ruby 2.1.1, Ruby on Rails 4.0.4
【前提条件】
・rbuenvの環境ができており、Ruby 2.1.1が動作すること(環境構築メモリンク)
・Ruby 2.1.1の環境にBundlerがインストールされていること(環境構築メモリンク)
今回はいよいよRuby on Railsの開発環境を構築してみる。
今後作成するRailsアプリは、Bundlerを使って、アプリごとに自身が必要とするgemをローカル(アプリ内)に保持するように構成することとする。
・プロジェクトの基準ディレクトリを作成する
ここでは、~/Documents/RailsSample とする。
・RoRをローカルにインストールする
$ mkdir ~/Documents/RailsSample $ cd ~/Documents/RailsSample $ touch Gemfile $ vim Gemfile # 以下2行を追加 source "http://rubygems.org" gem "rails", "4.0.4" # ← Ruby on Railsのバージョンを指定。指定しなければ最新版が入る。 $ bundle install --path vendor/bundle
この時点ではまだまだ準備段階。
Railsアプリを作成するのに必要なgemを~/Documents/RailsSample/vendor/bundleにインストールしただけである。
・RoRプロジェクトを作成する
プロジェクト名をrails_sampleとしてみる。
$ bundle exec rails new rails_sample --skip-bundle
ここで重要なのは、--skip-bundleオプションを指定すること。
こいつを指定することによって、「作成するRailsアプリが」必要とするgemのインストールを先送りにする。
・不要になったバンドルを削除
この時点で、「Railsアプリを新規作成(rails new)するための」gemは不要になったので、削除する。
$ rm -f Gemfile $ rm -f Gemfile.lock $ rm -rf .bundle $ rm -rf vendor/ $ ls rails_sample
これで綺麗サッパリ。プロジェクトは、~/Documents/RailsSample/rails_sample 以下に構成されている。
アプリに必要なgemはまだインストールされていない。
・RoRプロジェクトの環境セットアップ
今度は、アプリ内で必要とするgemを定義する。
rails newした時点で、rails_sample/Gemfileは自動的に生成されており、「一般的に必要になりそうなもの」がGemfile内にあらかた定義されている。たとえば、SQLite3やjQuery*1など。Gemfileの内容はアプリで必要なものをインストールするように編集する。たとえば、DBにMySQLを使うならば、sqlite3のgem定義を消して、mysql2のgem定義を追加する、など。
今回は、デフォルトのままバンドルをインストールしてみる。
$ cd rails_sample $ bundle install --path vendor/bundle
・Gitの管理対象から vendor/bundle ディレクトリを外す
gitでソースコード管理するなら、インストールしたバンドルを管理対象外にしておくこと。
なぜなら、アプリをリリースする際には、Gemfileを含めてリリースし、インストールする環境ごとにbundle installしなければならないからだ。
$ echo '/vendor/bundle' >> .gitignore
・プロジェクトを起動する
これでrails_sampleアプリの初期化は完了した。
Ruby on Railsに同梱されているWebサーバーをローカル起動して動作確認してみる。
$ bundle exec rails server
http://localhost:3000/ にアクセスすると、Welcome aboardサンプルページが表示される。
Webサーバーを終了するには Ctrl + C でOK。
【参考サイト】
http://qiita.com/emadurandal/items/a60886152a4c99ce1017
ひとまずこれで環境構築はできたように思える。
次回は何か簡単な画面を作ってみようと思う。
つづく