技術

【gem/bundle】あんたたち一体どういう関係なのよ!!

投稿日:

どうも中田です。

今回は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

-技術
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

【Rails】kaminariさんって配列もいけるんですね

どうも中田です。 久しぶりのブログになります。 railsでページングをする場合 …

no image

[Angular] router-outletの外で現在のurlを取得

こんにちは、コーテッグのこやまです。 Angularでapp.component …

[Rails] モデルが初期化されてないとな(not initialized)

どうも中田です Railsで、modelの initialize に処理を追加す …

fullpage.jsでコンテンツを画面幅いっぱいでスクロールさせる。

fullpage.jsとは fullpage.jsは一つのコンテンツを画面いっぱ …

no image

[JavaScript]IEのif文の判定がchromeと違う?

こんにちは、コーテッグのこやまです。 今持っている案件で、IE対応を進めているの …