技術

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

関連記事

Siriに笑って欲しいから [iOS 11、macOS High Sierra](「Siri」の笑い声まとめ)

iPhone Xが発売されて巷はiPhone Xの記事ばかり。 なんとなく見てい …

[Rails]遷移元のURLを表示する方法

こんにちは。たなかです。 「このページから遷移してきた時は、こう処理したい」みた …

no image

TypeScriptで連想配列の型定義をする

TypeScriptを書いているときに、毎回調べていたので簡単にまとめました。 …

[SSL] let’s encryptの更新でエラー?!

どうも中田です。 無料でSSL証明書が取得できる今日この頃、いかがお過ごしでしょ …

SwiftSwitch @ Raspberry Pi 3(ラズベリーパイ)

誕生日ということで会社からRaspberry Pi 3を頂きました! とりあえず …