ruby on rails を始めたときに 覚えておきたい bundler(バンドラー)の使い方...
TRANSCRIPT
Ruby on Rails を始めたときに 覚えておきたい Bundler(バンドラー)の使い方
Ruby / Ruby on Rails ビギナーズ勉強会 第3回
Ticklecode. Yoshinori Kobayashi
1
5
Rubyでパッケージ管理システムといえば、RubyGems
Railsをインストールするとき gem install rails
gem install コマンドで、RubyGems.org からパッケージを取得してインストールしてくれる。
https://rubygems.org/
RubyGems.orgはRubyコミュニティのgemホスティングサービス
sassをインストールするとき gem install sass
6
RubyGems(gem)だけでは、
複数のPCで、Railsアプリケーションを動かすために同じパッケージ、同じバージョンを揃えるのが難しい。
そこで
各PCで、 gem install で個別にパッケージを導入しないといけない。
8
Bundlerとは
BundlerはRailsアプリケーションに必要なgemパッケージの種類とバージョンを複数のPCで同じに設定するための仕組みを提供している。
【公式サイトより】 Bundlerは、必要とされる正確なGemとバージョンを追跡し、インストールすることで、Rubyプロジェクトのための一貫性のある環境を提供します。 Bundlerは、依存関係の地獄からの出口であり、あなたが必要とするGemは、development、staging、およびproductionに存在していることを保証します。プロジェクトの作業を開始すると、 Bundlerがインストールするのと同じくらい簡単です。
9
Bundler はGemfile(ジェムファイル)で 必要なGemパッケージを一元管理
rails new アプリケーション名 で Gemfile も作成される
Gemfile は インストールするパッケージが記載されたリスト。
10
「gem ‘rails’, ‘4.2.0‘」 railsパッケージは、バージョン4.2.0の固定でインストール
「gem 'sass-rails', '~> 5.0'」 5.0 より大きく、5.1より小さい。マイナーアップグレードのみインストール
Gemfileで必要なパッケージのバージョンも管理
「gem 'uglifier', '>= 1.3.0'」 バージョンが1.3.0以上であればインストール。最新があればインストール。
11
Gemパッケージ情報をシェアできる。
bundle install
RailsアプリとGemfileをシェアする。
このアプリに必要なGemパッケージがインストールされる
別のPCでも同じGemパッケージの状態にすることができる。
13
bundle install
Gemfileに書かれたGemパッケージと、そのGemパッケージが依存しているGemパッケージを自動的に調べて全てインストール。 Gemfile.lockにインストールされたGemパッケージの名前とバージョンが記録する。
bundle コマンドは、必ず Gemfile が存在するディレクトリ上で実行する。
14
bundle update
Gemfile.lock(以前にインストールされたもの)を無視して、指定されたgemを更新。 明示的にgemのバージョンを更新するために使用します。 ※マシン間で同じgemやバージョンをインストールするときは bundle install を使う。
15
bundle exec
Gemfileで指定されたgem環境でコマンド実行 OSコマンドと区別して、gemでインストールしたコマンドを使うように指示する。
bundle exec rspec spec/requests/static_pages_spec.rb
例えば、
gemでインストールした、rspec(テストツール)を「明示的に」使う。
16
bundle show rails で、rails がインストールされている場所がわかる。
bundle show
gemの名前とバージョンを表示。
gemパッケージがインストールされている場所がわかる。
bundle show --paths で、gemパッケージがどこにインストールされたのかリストできる。
17
bundle open 指定されたGEMのソースディレクトリが開く。 動作させるには、EDITORまたはBUNDLER_EDITORの環境変数の設定が必要。
指定した、gemの中を移動したり、編集できる。 Eixt するともとのコマンド位置に戻る。
18
bundle outdate バンドルされた gem の中から古くなったものの(バージョンアップ可能なものの)リストを出力する。
bundle outdate が実装される前は、bundle update でまとめて更新するしかなった。 bundle outdate の履歴をみて、個別に bundle update を行う運用ができるようになった。
上記では、bootstrap-sass 3.3.4.1 にバージョンアップができることがわかる。
19
3.Bundlerを理解する上で、参考になるサイト
Bundler再履修: bundle execって何? gemはどこに入るの?
Bundler Official site
Bundlerを使ったGemパッケージの管理
[ruby]最初に知っておけば良かったbundlerの使い方 rails編
【翻訳】速くなったのはいいとして、Bundler 1.1 の他の新機能は?
bundler で管理している gem のソースをすぐに読み始める方法