技術

【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]updateの時だけvalidationを実行させる

こんにちは アプリを作っていて、create時にはvalidationを実行させ …

[正規表現]半角英数字&記号

どうも中田です。 今更ですが、正規表現の話。 正規表現でこんなパターンがほしい的 …

[ Ionic ] アプリの画面向きを指定する方法

こんにちは。たなかです。 Ionicフレームワークでモバイルアプリ開発しています …

[ Rails ] ExecJS::RubyRacerRuntime is not supported. Please replace therubyracer with mini_racer in your Gemfile or use Node.js as ExecJS runtime.

こんにちは。たなかです。 モバイルアプリ開発の内容でブログを書くことが多い私です …

go

【Golang】package strconvのintSize = 32 << (∧uint(0) >> 63)は何をしているのか

こんにちは Goのstrconvのパッケージを読んでたらintSizeというもの …