初心者が苦しんで学ぶためのRails開発環境構築(保存版)
SIerのSE歴1年目のjumです。
RailsでWebアプリを作ろうと、ローカル開発環境の構築を始めて2日、ようやく"Welcome aboard"画面を表示できました。
この苦しんだ2日間を無駄にしないために、初心者におすすめのRails環境構築方法をまとめます。 PCはMacを想定していますが、Windowsの人も得るものはあるはず。
初心者が陥りやすい問題点
"Rails 環境構築"などでググると、"コマンド一発で環境構築できる!"みたいなQiitaの記事がたくさん出てきます。
よっしゃこれ読めば簡単やん、となります。
どっかーとか、しぇふとか、難しい単語を読み飛ばして、掲載されたコマンドを順に実行します。
エラーが出ます。ググってもどのツールで起こったエラーかすらよくわかりません。 情報が古くて、ツールの仕様が変わっていたりもします。 死にます。
初心者が心に深く刻むべき3つの指針
このように、いきなりよく分からないツールを使おうとすると、ライブラリのバージョン違いやホストOSの環境の違いから自分の理解を超えたエラーが発生し、詰みます。
あるいは、偶然上手くいっても何の学びにもなりません。
われわれ初心者は、以下の3つの指針を心に深く刻み付けましょう。
- なるべく最小構成で構築する
- 同じ環境をもう一度構築できるようにする
- わかるコマンドしか打たない
なるべく最小構成で構築する
最近話題だからといって、いきなりDockerとか使い始めると死ぬということです。(自戒)
最低限の機能を持ったツールで始めた方が、出てくるエラーが初心者でも手に負えることが多いです。
同じ環境をもう一度構築できるようにする
再現性がない環境で開発をすると、ちょっと一から環境作り直したい、ということができなくなります。
うろうろと悩みながら環境構築をしつつ、何をしたかのログをしっかりとりましょう。
ログを取ることで、忘れた頃に復習もできますね。
1ヶ月後の自分でも同じ環境が構築できるような環境構築手順メモを作ることを、目標の1つにします。
わかるコマンドしか打たない
Qiitaの記事から、魔法のようなコマンドをコピペし続けても、何の学びにもなりません。
何を目的としたコマンドかが分からなければ、出たエラーの本質的な原因を特定することはできません。
必要なコマンドが何かをググって、その意味をググって、本当に必要だと思ったら実行する、を繰り返しましょう。
手順1. VagrantとVirtualBoxをインストール
ローカル開発環境はVirtualBoxとVagrantで仮想マシン上に構築します。
理由は、ホストOSに直に環境を作ると、再現性が低くなるからです。
環境構築のたびに、毎回OSを再インストールするというなら、止めませんが。
手順2. boxを決める
http://www.vagrantbox.es/で、使うboxを決めます。
良さげなOSとバージョンを調べて、ProviderがVirtualBoxとなっているboxの中からノリで決めます。
私はUbuntuにしました。 CentOSとかもよく聞きますね。
Linaxディストリビューションの系統によってパッケージ管理用のコマンドなどが微妙に違うようです。 yumとapt-getとか。
手順3. Vagrant addからVagrant sshまで
コマンドプロンプトで作業ディレクトリに移動し、Vagrantで仮想マシンを立ち上げます。
- vagrant add [box名] [URL]:Vagrantにboxを登録
- vagrant init [box名]:Vagrantfileを作成
- vi Vagarantfile:Vagrantfileを編集。forwarded_portとipの設定をする。
- vagrant up:仮想マシン立ち上げ
- vagrant ssh:仮想マシンにログイン
同じVagrantfileを使い回すなら、今後はvagrant up以降の手順を繰り返します。
手順4. rubyとrailsのバージョンを決める
rubyもrailsもバージョンによって仕様がかなり違うようなので、新しすぎて最新の仕様に基づいた情報がネットに少ないこともありそうです。
ついでに、DBに何を使うか(SQLite、MySQLなど)も気分で決めます。
手順5. rubyとrailsのインストールや開発作業に必要なライブラリをインストールする
apt-getとかyumとかgit cloneを使って、必要なライブラリを揃えていきます。
- 必要なライブラリを調べる/考える
- そのライブラリのインストール方法や設定方法を調べる
- 実行する
- エラーが出たら、エラーメッセージでググる/エラーログを読んで対処を考える
以上の繰り返しに苦しみながら、railsの環境構築について学んでいきます。
まっさらなOSに対して自分はどこにどのように手を加えたのか、evernoteなどに記録していきます。
インストール中の待ち時間は、各ライブラリの役割や、各コマンドの意味を調べてそれもログに加筆します。
手順6. 共有フォルダでrails newする
Vagrantは、ホストOSとゲストOSの間に共有フォルダをもちます。
そこにrailsのソースファイルをおけば、ホストOSの好みのエディタでゲストOS内のソースが編集できるわけです。
そのため、ゲストOSのターミナルで共有フォルダに入り、rails newします。
- cd /vagrant:共有フォルダは、デフォルトでは/vagrant
- rails new [appName] (-d [mysql / postgresql]):-dは、sqlite3を使わない場合
手順7. 動作確認
無事にrailsのプロジェクトをnewできたら、さっそく動作確認です。
- rails server --binding=[IP]:Vagrantfileで設定したIPに紐付けてサーバ立ち上げ
ホストOSのブラウザで、"http://[IP]:[PORT]"とアドレスバーに入れれば、Railsのデフォルト画面が表示されるはずです。
手順8. 作業ログを整理する
復習も兼ねて、作業ログを読み直します。
もし順番を変えたくなったり、コメントを書きたくなったら、適宜手を加えます。
1ヶ月後の自分がそれを見て同じ環境を構築できるか?を基準にするといいでしょう。
われわれは想像を超えて忘れっぽいです。
環境構築にはとっとと慣れて楽しいRailsライフを!
偉そうにつらつら書いてきましたが、ここは2日間の苦しみの末にたどり着いた境地です。
環境構築は辛いですが、慣れればやることは単純です。
初心者のうちに十分苦しんで、自分なりに楽な方法を模索していきましょう。