Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Afresh Bundler extra lesson
Search
wtnabe
October 17, 2015
Programming
0
220
Afresh Bundler extra lesson
「今さらBundler補講」Kanazawa.rb meetup #38
wtnabe
October 17, 2015
Tweet
Share
More Decks by wtnabe
See All by wtnabe
Decoupled System with Turbo Frame
wtnabe
1
37
join-kanazawarb-or-7years-passed-since-it-was-borned
wtnabe
0
650
let-me-edit-with-editor
wtnabe
0
240
google-photos-and-storage-and-rclone
wtnabe
0
310
one case of how to begin vuejs
wtnabe
2
360
Kanazawa.rb meetup #56 Coderetreat Intro
wtnabe
0
340
lightweight authenticity of microservices
wtnabe
0
360
Automate WordPress deployment with WordMove
wtnabe
1
400
CircleCI Hands-on for Beginners
wtnabe
0
370
Other Decks in Programming
See All in Programming
Deep Dive into React Stream/Serialize
mugi_uno
4
860
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
620
WebGLで始める コンピュータグラフィックス入門
heller77
0
370
WinActorの勉強を継続する方法
tamai_63
0
130
GitHub Actionsの痒いところを埋めるサードパーティーランナー
dora1998
2
250
RustでAWS Lambda functionをいい感じに書く
taiki45
2
150
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
110
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
3
2.1k
Fragment Composition of GraphQL
quramy
14
1.7k
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
1
430
教えて!スクラムコーチ品質とスピードのバランスはどうすりゃいいの?
pinboro
0
110
ペパボOpenTelemetry革命
pyama86
2
920
Featured
See All Featured
Building an army of robots
kneath
300
41k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Web development in the modern age
philhawksworth
203
10k
Product Roadmaps are Hard
iamctodd
45
9.8k
How to train your dragon (web standard)
notwaldorf
75
5.2k
Designing for humans not robots
tammielis
247
25k
Building Your Own Lightsaber
phodgson
100
5.7k
Six Lessons from altMBA
skipperchong
22
3k
Making the Leap to Tech Lead
cromwellryan
125
8.6k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Typedesign – Prime Four
hannesfritz
36
2.1k
Transcript
今さらBundler補講 @wtnabe Kanazawa.rb meetup #38 2015-10-17 (Sat) at DMM.com Labo
Kanazawa div.
いきなりまとめ 利⽤するgemは Gemfile に記述 gemの依存関係を解決し、必要なgemを まとめてインストールできる プロジェクト配下にgemをインストー ルし、その影響をプロジェクト内に閉じ 込めることができる
Bundler 1.10 以降の 新機能の話はしません><
依存管理
例 gem A と gem B をインストールしたい gem A が
gem 1 に依存(ver指定なし) gem B が gem 2 と gem 3に依存 gem 3 が gem 1 のバージョン1.2に依存
Gemfile gem 'gem A' gem 'gem B'
結果 gem A の最新版 gem B の最新版 gem 1 のバージョン1.2
gem 2 の最新版 gem 3 の最新版 が⼊る
便利
プロジェクト単位で管理
こんなことができる
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
Rubyのバージョン切り替え は別なツールの話ですが、
プロジェクトごとに⾃由に gemの組み合わせを変更
Type $ gem install bundler $ bundle install --path <path>
プロジェクト内でのコマンドの実⾏⽅法 $ bundle exec foo bar binstubsは省略するので各⾃宿題にしてください
なぜBundlerが⼤切か
依存gemの影響をプロジェクトに閉じ 込め、それを⾃動で再現できる 必要なライブラリを⼿元のコードだけで 管理できる
他の開発マシンや本番環境 との違いがなくなる
deployの⾃動化が容易に もうこれはMUSTでしょ!!
間違いのないdeployを
ちなみに
Gemfile.lock deployに必要 アプリの場合はreposに⼊れる ライブラリの場合はreposに⼊れない
BUNDLED_WITH in Gemfile.lock Bundler 1.10 で⼊った Bundler バージョ ントラッキング機能の影響 結論は全員
1.10.5+ / 1.9.10+ 使え Ruby が古い場合は関係ないかも
参考 Bundler: The best way to manage a Ruby application's
gems #201 Bundler - RailsCasts Ruby - ツールを使いたいだけの⼈のための bundler ⼊⾨ (例: vagrant + veewee) - Qiita Rubyそのもの Rubyist Magazine - Ruby の歩き⽅
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