どうも中田です。
今回はgemとbundleの話。
前置き
よくあるgemの説明を引用してきました
Rubyで使われるライブラリやアプリケーションはGemと呼ばれる形式のパッケージにすることができます。
多くのライブラリがGem形式でパッケージされ公開されており、
これらはRubyGemsと呼ばれるパッケージ管理ツールを使ってダウンロードを行なったりインストールすることができます。
これらのパッケージのことを単にGemとかGemパッケージなどと呼んだりします。
んで、BundlerとはRubyのライブラリ管理ツールの事
Railsやってて、
$ gem install ****
とか
$ bundle install
とかやってたけど、あたしゃ本当に理解してやってるのか?
ってことで、改めて調べてみました。
gem
これはRubyのパッケージ形式のことを言ってます。(上と同じこと言ってますが)
それをRubyGemsというパッケージ管理ツールを使ってインストールしたりするんですな。
$ gem install ****
っていうのは、RubyGemsのgemコマンドを使ってgemパッケージをインストールしてるって意味になります。
bundle(正確にはBundler)
これは、gemのインストールをまとめてやってしまおう計画!を実施するツール
Gemfileというファイルにインストールしたいgemの内容を記載しておきます。
(Gemfileの例)
… gem 'rails', '4.1.4' gem 'mysql2' gem 'geocoder' gem 'breadcrumbs_on_rails' gem 'unicorn' gem 'rb-readline' gem 'nested_form' …
これで、
$ bundle install
を実行すると、Gemfileに書いてあるパッケージがドドドド!っと
プロジェクト内にインストールされます。
しかも、Gemfile.lockファイルでバージョン制限したりできるというもの。
(バージョン制限の詳細は割愛)
ちなみに、gemパッケージのインストールの場所を知りたい時はこれ。
$ gem which [gem-name]
または
$ cd (Gemfileがあるフォルダ)
$ bundle show [gem-name]
Javaでいうと↓みたいな感じになるのかな。
- Maven => RubyGems
- jar => gem
- pom.xml => Gemfile
- $ mvn install => $ bundle install
(イメージねイメージ)
まとめ
BundlerはRubyGemを使ってプロジェクト単位でパッケージ管理ができる便利グッズ
今回はこんなところで。
感謝サイト:
http://ryosuke0032.info/it/1594/:embed
http://ryosuke0032.info/it/1594/:title