技術

【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

【ionic】タブをタップで最上部にスクロール!

どうも、中田です。 今日はタブをタップでトップにゴーの日です。 どういう日かとい …

no image

【Rails】パッと簡単クロスドメイン対応

どうも、中田です。 最近専らRailsでは画面を作るというより、APIを作るとい …

no image

OSSに貢献してみたい人向けチュートリアルの紹介

こんばんは githubのtrendingを眺めてたら、OSSに貢献してみたい人 …

no image

【Android/ionic】これさえやればOK!アプリ公開への道

どうも、中田です。 ionicでHTML5/CSSハイブリッドアプリ開発してるん …

no image

【AWS】mysqldump&S3バックアップ。それは一瞬の出来事

こんにちは、中田です。 RDSでしっかりとバックアップ! とまでしなくていい場合 …