Ruby on Railsの環境構築やってみる
だいぶ日が空いてしまいました。
申し訳ございません。
言い訳は手元のMacの調子が悪くレンボーカーソルが頻発して固まるといった症状が続いております....
↓前回の作業でrbenvをインストールできたので
調子にのってRailsの環境構築をやろうと思ったのですが、やり方が沢山あってお腹いっぱいになります。
はじめに
rbenvの環境が整っている事が前提で進めます。
また、今回やりたい事はbundlerを使用してRailsをインストールする。
どうやらgemでインストールするよりbundlerを使用する方が主流になりつつあるそうです。
bundlerについて
複数のパッケージをgemでインストールする事になると思います。
しかし、一つずつgemでインストールしていると面倒...。
また、『相性の合ったパッケージをまとめて管理したい。』ともなるでしょう。
そんな時にbundlerを使用するとGemfileで一括管理できます。
準備
予め済ませておく事
後半のRailsのプロジェクト作成時にsqlite3関連でエラーになるので予めインストールします。
※root権限での作業になります。
Railsサーバー立ち上げ時にgemパッケージの"therubyracer"がインストールされている必要があり、このパッケージをインストールするのにg++が必要になるので予めインストールしておく。
※root権限での作業になります。
以前、四苦八苦しながらインストールした時は管理者権限を要求された記憶が薄っすらあるので、自分のアカウントでsudoコマンドが実行できるようにwheelグループに参加します。(もしかしたらローカル環境ならいら無いかも)
>usermod -aG wheel {追加したいユーザーアカウント}
※root権限での作業になります。
rbenvをインストールするとgemが既にインストールされております。
bundlerのインストール
>rbenv exec gem install bundler
bundlerのインストール確認
>gem list | grep 'bundler'
作業ディレクトリ(プロジェクト)を作成して移動
>mkdir ~/hoge
>cd ~/hoge
Ruby on Railsインストール
確認作業
リリースされているRailsのバージョンを確認します。
たくさん出ます。
そしてstableかは下記のコマンドではわかりません。
今回は最新の4系をインストールしてみたいと思います。
>gem search ^rails$ -a
bundlerの初期設定
ここで気を付ける事は"rbenv exec"で実行する事です。
bundlerだけでもいいのですが、local環境に作りたい場合、その環境に移動してrbenvで指定したrubyのバージョン以下で作業しないとglobalの環境に構築する事になってしまうので注意が必要です。
>rbenv exec bundler init
実行すると"Gemfile"というファイルができます。
このファイルの中にインストールしたいgemパッケージを羅列してインストールする。
>vi Gemfile
今回は下記を追記する。(バージョンを指定しないと最新が入る)
gem "rails", "4.2.9"
railsインストール
>rbenv exec bundler install --path vendor/bundler
補足:gitで管理する場合"/vendor/bundler" を管理対象外にする必要あり
>echo '/vendor/bundle' >> .gitignoree
インストール後にプロジェクト作成
Gemfileの上書き確認がありますが上書きで構いません。
>rbenv exec bundler exec rails new .
Railsサーバー起動
CentOS7のfilewallを停止しておいてください。
>rbenv exec bundler exec rails s -b 0.0.0.0
※お約束エラー"uglifier"が出ると思います。分かり難いのですがGemfileの"therubyracer"がコメントアウトされているので、このコメントアウトを外しbundlerを利用してGemfileの再インストールをすると解消されるはず。
ホストのブラウザから確認
下記のように3000番ポートを指定してアクセスしてWelcomeが表示されればOKです。
http://{ご自身の環境に合わせて}:3000/
以上、Ruby on Railsをインストールしてみるでした。
次回予告
とりあえず、環境構築あたりをやろうと思うので次回はpyenvの環境構築をやってみようと思います。
以上、最後までお読みいただきありがとうございます。