Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Afresh Bundler extra lesson

088b1b43ff5dd64aa0f000da9e9da777?s=47 wtnabe
October 17, 2015

Afresh Bundler extra lesson

「今さらBundler補講」Kanazawa.rb meetup #38

088b1b43ff5dd64aa0f000da9e9da777?s=128

wtnabe

October 17, 2015
Tweet

Transcript

  1. 今さらBundler補講 @wtnabe Kanazawa.rb meetup #38 2015-10-17 (Sat) at DMM.com Labo

    Kanazawa div.
  2. いきなりまとめ 利⽤するgemは Gemfile に記述 gemの依存関係を解決し、必要なgemを まとめてインストールできる プロジェクト配下にgemをインストー ルし、その影響をプロジェクト内に閉じ 込めることができる

  3. Bundler 1.10 以降の 新機能の話はしません><

  4. 依存管理

  5. 例 gem A と gem B をインストールしたい gem A が

    gem 1 に依存(ver指定なし) gem B が gem 2 と gem 3に依存 gem 3 が gem 1 のバージョン1.2に依存
  6. Gemfile gem 'gem A' gem 'gem B'

  7. 結果 gem A の最新版 gem B の最新版 gem 1 のバージョン1.2

    gem 2 の最新版 gem 3 の最新版 が⼊る
  8. 便利

  9. プロジェクト単位で管理

  10. こんなことができる

  11. Project1 : Ruby 1.9 + Rails 3.2 Project2 : Ruby

    1.9 + Rails 4.2 Project3 : Ruby 2.2 + Rails 3.2 Project4 : Ruby 2.2 + Rails 4.2
  12. Rubyのバージョン切り替え は別なツールの話ですが、

  13. プロジェクトごとに⾃由に gemの組み合わせを変更

  14. Type $ gem install bundler $ bundle install --path <path>

  15. プロジェクト内でのコマンドの実⾏⽅法 $ bundle exec foo bar binstubsは省略するので各⾃宿題にしてください

  16. なぜBundlerが⼤切か

  17. 依存gemの影響をプロジェクトに閉じ 込め、それを⾃動で再現できる 必要なライブラリを⼿元のコードだけで 管理できる

  18. 他の開発マシンや本番環境 との違いがなくなる

  19. deployの⾃動化が容易に もうこれはMUSTでしょ!!

  20. 間違いのないdeployを

  21. ちなみに

  22. Gemfile.lock deployに必要 アプリの場合はreposに⼊れる ライブラリの場合はreposに⼊れない

  23. BUNDLED_WITH in Gemfile.lock Bundler 1.10 で⼊った Bundler バージョ ントラッキング機能の影響 結論は全員

    1.10.5+ / 1.9.10+ 使え Ruby が古い場合は関係ないかも
  24. 参考 Bundler: The best way to manage a Ruby application's

    gems #201 Bundler - RailsCasts Ruby - ツールを使いたいだけの⼈のための bundler ⼊⾨ (例: vagrant + veewee) - Qiita Rubyそのもの Rubyist Magazine - Ruby の歩き⽅
  25. Bundler 1.10+ Use 1.10.5+ / 1.9.10+ Bundler: Version 1.10 released

    Ruby - Bundler バージョン1.10がリリースされました(翻訳) - Qiita Ruby - BUNDLED WITH で Gemfile.lock が更新されてしまう件 - Qiita