rbenv と bundler で rails 環境構築メモ
rbenv と bundler を使って既存のruby環境汚さず rails環境を構築する際の私的メモ。
ローカルインストールしたい rails のバージョンを Gemfile に記載する
作業ディレクトリに移動した後、以下のコマンドを実行し、Gemfile を作成する。
$ cat << EOS > Gemfile source "https://rubygems.org" gem "rails", "~> 3.2.0" # ←ローカルインストールしたいRailsのバージョンを指定。指定しなければ最新版が入る。 EOS
rails を vendor/bundle
以下にインストールする
$ bundle install --path vendor/bundle
すると
Retrying dependency api due to error (2/3): Bundler::HTTPError Network error while fetching https://bundler.rubygems.org/api/v1/dependencies?gems=bcrypt,abstract,mime-types,tlsmail,treetop,hoe,ZenTest,RubyInline,test-spec,camping,fcgi,mongrel,ruby-openid,thin,multimap,tilt,hike,text-hyphen,atomic
なんかこんなかんじのエラーメッセージを吐き腐るのだが、ググれどもググれども解決策らしきものがでてこないが、特に問題なさそうなのでいったん放置。
どなた様か原因がわかる方いらっしゃいましたらぜひご一報をば・・・。
--path [dir]
オプションを指定してbundle install
を実行すると、次回以降のbundle install
時にはディレクトリ指定をしなくてもそのディレクトリが使用されるオプション指定をせず、単に
bundle install
とすると、system または、 rbenv で指定された標準の位置にインストールされてしまうので注意
rails プロジェクトを作成する
今回は example という名前で作成。
$ bundle exec rails new example --skip-bundle
--skip-bundle
を指定しないと、system環境にgemがインストールされてしまうので注意
test-unitを組み込みたくない場合は以下のオプションを指定する。
$ bundle exec rails new example --skip-bundle -T
rails をローカルインストールするために使った bundler の環境を削除する
$ rm -f Gemfile $ rm -f Gemfile.lock $ rm -rf .bundle $ rm -rf vendor/bundle
rails プロジェクトの環境セットアップ
先ほど作成した rails プロジェクトディレクトリに移動した後、Gemfileを編集する。
rspec を使う場合は Gemfile に以下を記載する。
gem 'rspec' gem 'rspec-rails'
Gemfile を編集後、gem群をインストールする。
$ bundle install --path vendor/bundle
その後
$ bundle exec rails g rspec:install
で rspec 設定ファイルを生成する。
こうすることで、新しいコンロトーラーやモデルを生成した場合に、自動的にひな形となる spec を生成してくれるので便利。
ついでに Git の管理対象から vendor/bundle
ディレクトリを外す。
$ echo '/vendor/bundle' >> .gitignore
rails が本当に起動できるかを以下のコマンドで確認すると良い
$ bundle exec rails server
参考URL
http://memo.yomukaku.net/entries/IpCSQmo
http://qiita.com/emadurandal/items/a60886152a4c99ce1017#2-7
http://blog.44uk.net/2012/07/31/rails3-rspec-try-unit-test/