Vagrantでの全ユーザー共通の Ruby on Rails の環境設定作り

目指すのは下記の環境

  • vagrant
  • rbenvでのrubyの環境づくり
  • bundler で管理
  • 全ユーザー共通の環境づくり

rbenvの環境設定

全ユーザ共通で管理出来るようにすることが前提。

githubからrbenvとruby-buildを取得する
rbenv
https://github.com/sstephenson/rbenv.git
ruby-build
https://github.com/sstephenson/ruby-build.git

rbenvの設定

ここでは全ユーザー共通の管理を出来るようにすることが前提のため、rbenvを/usr/local以下に置く。

環境変数の設定

環境変数もrbenvと同様に全ユーザー共通のために置く場所を変更する。

従来の/home/USER_NAME/.bash_profileではなく、/usr/profile.d/以下にrbenv.shを作成して環境変数を設定する。

/etc/profileに書くのもよいが、アプリケーション毎に特有の設定は切り出しておいた方がよいだろうということでrbenv.shに切り出します。

ここでは、/user/profile.d/rbenv.shとして下記を記述。

設定を読み込みます。

ruby-buildを取得

rubyをインストール

rubyがちゃんと入っているかを確認する。

こうなっていればOK。

bundlerを入れる

rubyを入れるとgemがついてきます。ちなみに1.9以前のバージョンのものには標準でついていないので自分でインストールする必要があります。まあ、基本的にそこはあんまり気にする必要はなさそう。めずらしい案件以外は。

bundlerでrailsをセットする。

Gemfileの作成

Gemfileの修正

デフォルトのGemfileが作成される。デフォルトではgemのリポジトリのURLとrailsの設定が書いてるのみ。

※ 2014年末にデフォルトで記載されているURLからgemファイルがDLできない自体になっていた。その為、明示的に日本リポジトリの http://tokyo-m.rubygems.com に変更した。ちなみに1月10日に試した時点ではそれも直っていたの、あくまでに参考までに。

必要なgemのインストール

–path vendor/bundleをつけることでrailsアプリケーションのvendor/bundle以下にgemファイルがDLされるように指定することができる。
一度記載すれば.bundle/configファイルに登録されるため、次回行こうは省略しても同じ場所にDLされる。

bundle install後は指定通りvendor/bundle以下にgemファイルが入っている。
bundle install後にはGemfileと同じディレクトリにGemfile.lockというファイルが生成される。これはBundlerが解消したgem同士の依存関係やバージョンが記録されている。これはgitに含めるべし。

ちょっと外れるけどGemfile更新〜bundle installの時にやってみてもいいこと

git status ~ git commit の様に状況確認してから、登録する方が個人的には安心する。一連のその流れが以下。

railsのインストール

bundleを使います。

上記でカレントディレクトリにrailsプロジェクトが作成されます。

vagrantでサーバーを立ち上げてブラウザで確認するまで

vagrantで作成し、ブラウザから確認する場合、通常のLinuxで見る場合の他にVagrantfileの設定が必要です。

iptablesの設定

上記のように3000番を通してあげる。

Vagrantfileの修正

ポートフォワードでゲストの3000番をホストの3000番に振る。

立ち上げて確認まで苦労したrails server

あとは rails serverを立ち上げて http://localhotst:3000 にアクセスします。

が、一向にアクセスできない。。

http://localhost:3000 も、 http://192.168.33.10/ も アクセスできない。

どうしようかと格闘した結果、詰まっていたのでrorの達人に質問して分かったことは下記のコマンドで http//localhost:3000 にアクセスできるようになるとのこと。

意味はあまりわかってないので、詳細調べたら追記しよう。。

SNSでもご購読できます。

コメントを残す

*