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
260
Afresh Bundler extra lesson
「今さらBundler補講」Kanazawa.rb meetup #38
wtnabe
October 17, 2015
Tweet
Share
More Decks by wtnabe
See All by wtnabe
Effective Jekyll
wtnabe
0
13
5 min Jekyll/Liquid Plugin cooking
wtnabe
0
4
Ruby de Wasm
wtnabe
0
28
Cloud Native Buildpacksって結局どうなの?
wtnabe
0
22
Decoupled System with Turbo Frame
wtnabe
1
82
join-kanazawarb-or-7years-passed-since-it-was-borned
wtnabe
0
740
let-me-edit-with-editor
wtnabe
0
300
google-photos-and-storage-and-rclone
wtnabe
0
400
one case of how to begin vuejs
wtnabe
2
430
Other Decks in Programming
See All in Programming
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
7
1.4k
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
180
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1.3k
為你自己學 Python
eddie
0
520
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
950
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
130
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
450
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
170
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Building Applications with DynamoDB
mza
93
6.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
The Language of Interfaces
destraynor
155
24k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Building an army of robots
kneath
302
45k
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