ROUTE 3390

備忘録的な用途で書いていますが、どなたかの役に立つ事があれば嬉しいです。

Bundlerを使ってRailsをいれてみた

前回のエントリーrubyをインストールしたので、
次はBundlerを使ってRailsを入れてみたいと思います。


やることは大きく3つ
ruby本体にgemでBundlerを入れる
• 一時的なgemでRailsを入れる
Railsアプリケーションを作成したら一時的なgemを消す
(その他のgemはRailsの中で管理する)

これでBundler意外のgemはアプリケーション単位でしか依存しなくなります。
※注 Ruby超初心者なので大きな誤解をしている場合がございます。


まずはgemをアップデート

$ gem update --system


そしてbundlerのインストール

$ gem install bundler
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
Parsing documentation for bundler-1.3.5
Installing ri documentation for bundler-1.3.5
1 gem installed
$ rbenv rehash

rehashするのを忘れずに

僕はrbenvでRuby2.0.0を選択していたので、ちゃんと意図したとこに入ってるか確認

$ gem which bundler
/Users/sasakure/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb

うん大丈夫


それではRailsを入れます。



Gemfileというファイルを「Railsをインストールするためだけに」作る必要があります。
このGemfileというのはBundlerがインストールするためのgemファイルを指定するもので、
これからRailsをインストールしたい場所に作成する必要があります。

$ cd
$ mkdir RailsApps
$ cd RailsApps
$ vi Gemfile

Gemfileの中身はこんな感じ

source 'http://rubygems.org'
gem 'rails', '3.2.13'

んで、この例でいうとRailsAppsディレクトリにいる状態で
bundle install コマンドでインストールするんですが、
オプションで--path vendor/bundleを指定するのを忘れずに!

$ bundle install --path vendor/bundle
Fetching gem metadata from http://rubygems.org/...........
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake (10.0.4) 
Installing i18n (0.6.1) 
Installing multi_json (1.7.2) 
Installing activesupport (3.2.13) 
Installing builder (3.0.4) 
Installing activemodel (3.2.13) 
Installing erubis (2.7.0) 
Installing journey (1.0.4) 
Installing rack (1.4.5) 
Installing rack-cache (1.2) 
Installing rack-test (0.6.2) 
Installing hike (1.2.2) 
Installing tilt (1.3.7) 
Installing sprockets (2.2.2) 
Installing actionpack (3.2.13) 
Installing mime-types (1.23) 
Installing polyglot (0.3.3) 
Installing treetop (1.4.12) 
Installing mail (2.5.3) 
Installing actionmailer (3.2.13) 
Installing arel (3.0.2) 
Installing tzinfo (0.3.37) 
Installing activerecord (3.2.13) 
Installing activeresource (3.2.13) 
Using bundler (1.3.5) 
Using json (1.7.7) 
Installing rack-ssl (1.3.3) 
Installing rdoc (3.12.2) 
Installing thor (0.18.1) 
Installing railties (3.2.13) 
Installing rails (3.2.13) 
Your bundle is complete!
It was installed into ./vendor/bundle
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!

ここまで良い感じ。
最後に出て来たメッセージは何だろう。
Rubyのバージョンによってはrdocをインストールする必要があるけど、1.9.2以上なら関係ないよヒャッホー!」 ってとこかな。


あとはRailsでアプリケーションを作成したらGemfileを消せばいいんですって。

「demo」という名のアプリを作る場合は下記のようなコマンドを叩く。
※ --skip-bundleオプションでbundel installが走らないようにしておくことが重要

$ bundle exec rails new demo --skip-bundle
      create  
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/assets/images/rails.png
      create  app/assets/javascripts/application.js
      create  app/assets/stylesheets/application.css
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/views/layouts/application.html.erb
      create  app/mailers/.gitkeep
      create  app/models/.gitkeep
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  lib/assets
      create  lib/assets/.gitkeep
      create  log
      create  log/.gitkeep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  script
      create  script/rails
      create  test/fixtures
      create  test/fixtures/.gitkeep
      create  test/functional
      create  test/functional/.gitkeep
      create  test/integration
      create  test/integration/.gitkeep
      create  test/unit
      create  test/unit/.gitkeep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  script
      create  script/rails
      create  test/fixtures
      create  test/fixtures/.gitkeep
      create  test/functional
      create  test/functional/.gitkeep
      create  test/integration
      create  test/integration/.gitkeep
      create  test/unit
      create  test/unit/.gitkeep
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor/assets/javascripts
      create  vendor/assets/javascripts/.gitkeep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.gitkeep
      create  vendor/plugins
      create  vendor/plugins/.gitkeep

できたー!!
んでGemfile関連を削除(あくまでRailsを入れるためだけで、あとはRailsの中でgemファイルを管理するから洋梨)
この例だとRailsAppsディレクトリにはdemoディレクトリだけ残せばオーケーですね。


##### 追記
この後、demoディレクトリに移動して、bundle installを再び実行する事で、
bundle exec rails serverなど raisコマンドなどが実行出来るようになります。

$ cd demo
$ bundle install --path vendor/bundle
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Installing rake (10.0.4) 
Installing i18n (0.6.1) 
<< 省略 >>

$ bundle exec rails server
=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-04-23 01:02:23] INFO  WEBrick 1.3.1
[2013-04-23 01:02:23] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin10.8.0]
[2013-04-23 01:02:23] INFO  WEBrick::HTTPServer#start: pid=18508 port=3000