技術

【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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

「Google Inside Music」で自分の好きな音楽を聞いてみる(local環境構築 編)

以前紹介した「Google Inside Music」。 「Google Ins …

ASCIIコード表のMarkdown(転用可能)

どうも中田です。 特に意味はないですが、ASCIIコード表をMarkdownで作 …

[Rails]「どのブラウザからのアクセスか」を判別する方法

こんにちは。たなかです。 前回以下のような記事を書きました。   [R …

no image

【javascript】連想配列から特定の条件で新しい配列を作成する

こんにちは javascriptにはfilterという便利な関数があります。 例 …

セレクトボックスにfont-awesomeのアイコンを使うときは注意が必要。

セレクトボックスの中にfont-awesomeのアイコンを表示したい。 そんなと …