CentOSにRubyのBundlerをインストールして使い始める人向けの簡単なまとめ

公開日: : 最終更新日:2014/09/08 Ruby , , ,

Bundler を使ってないと環境を移したときに面倒だってことが身に染みて分かったので Bundler を使い始めることにしました。

で、いろいろ調べたことをメモしておきます。

「とりあえず Bundler を使い始めたい人向け」の内容になってますんで掘り下げた内容にはなっていません。ご了承ください。

icatch_4081722858

photo credit: Let Ideas Compete via photopin cc

目次

1. Bundler とは

Bundler は、プロジェクトで使用する Gem とそのバージョンを管理するツールです。

「ライブラリの管理だけに特化した Maven みたいなもの」と解釈しています。

2. CentOS に Bundler をインストール

Bundler 自身は gem コマンドでインストールします。

gem install bundler を実行します。

[root@centos65]~# gem install bundler
Fetching: bundler-1.7.2.gem (100%)
Successfully installed bundler-1.7.2
Parsing documentation for bundler-1.7.2
Installing ri documentation for bundler-1.7.2
Done installing documentation for bundler after 5 seconds
1 gem installed

検証した環境では rbenv を使って Ruby をインストールしました。
rbenv は /opt にインストールしたので、bundler は以下のディレクトリにインストールされました。

[hoge@centos65 rbenv]$ find /opt/rbenv -name "bundler"
/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/doc/bundler-1.7.2/ri/lib/bundler
/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.2/lib/bundler
/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.2/bin/bundler
/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.2/spec/bundler
/opt/rbenv/versions/2.1.2/bin/bundler
/opt/rbenv/shims/bundler

3. Gemfile とは / Gemfile の書き方について

プロジェクトで使用する Gem とそのバージョンは Gemfile というテキストファイルに定義します。Maven でいう pom.xml に該当するファイルです。

この Gemfile はプロジェクト直下に置きます。

Maven の場合は mvn コマンドでプロジェクトを作成すると pom.xml を作ってくれるように、Bundler も bundle init を実行すると Gemfile のひな型を作成してくれます。
このひな型に Gem の情報を追加していくのが良いようです。

さて、その Gemfile の書式についてです。
バージョンの指定についてはもっと細かく指定できるみたいですが、「Bundler を使い始める最初の一歩」としては、とりあえず次だけ知っていれば何とかなりそうかなと思います。

gem 'hoge', '1.2.3'  # hoge という Gem のバージョン 1.2.3 を使用する
gem 'piyo'  # piyo という Gem の最新バージョンを使用する
# gem 'huga', '0.1.2'  # この行はコメントアウト

インストール可能な Gem は、RubyGems.org にホストされているものに加えて、Github を含む Git リポジトリに登録されている Gem も指定することができます。

4. Bundler を使った Gem のインストール

Gemfile に定義した Gem は、bundle install を実行するとインストールされます。
このときに、Gem の依存関係も調べてくれて、環境に不足している Gem が見つかったら、その Gem も一緒にインストールしてくれます。

Gem は環境に共通のディレクトリにインストールされますが、特定のディレクトリにインストール先を変更することができます。
例えば、bundle install --path /path/to/dir と実行すると、/path/to/dir に Gem がインストールされます。

ただ、調べた感じだと “vendor/bundle” と指定して、プロジェクト直下の vendor/bundle ディレクトリにインストールするのが一般的なようです。

bundle install コマンド実行時のオプション情報は .bundle/config ファイルに保存されるようになっています。

5. Gemfile と Gemfile.lock をバージョン管理ツールに登録する

bundle install を実行すると、インストールされた Gem を記したファイル Gemfile.lock が作成されます。

カレントディレクトリに Gemfile.lock が存在する状態で bundle install を実行すると、Gemfile.lock に書かれている Gem がインストールされます。
なので、異なる環境でも同じバージョンの Gem を揃えることができ、環境によってプログラムが動かなくなるなんて事態を防ぐことができます。

Gemfile と Gemfile.lock はバージョン管理ツールに登録しておきましょう。

6. まとめ

以上、CentOS に Ruby の Bundler をインストールして使い始める人向けの簡単なまとめでした。

参照している Gem のバージョンが更新されてプログラムが動かなくなっている、なんてことがないように Bundler を使って管理しておきましょう。

7. その他 Ruby に関する記事

その他の Ruby に関する記事は次の通りです。
気になる記事があったらぜひチェックしてみてください!

パーフェクトRuby (PERFECT SERIES 6)

  • 著者Rubyサポーターズ
  • 価格¥ 3,456(2014/09/06 時点)
  • 出版日2013-08-10
  • 商品ランキング8704 位
  • 大型本640 ページ
  • ISBN-104774158798
  • 出版社技術評論社

小学生から楽しむ Rubyプログラミング

  • 著者(株)まちづくり三鷹
  • 価格¥ 1,944(2014/09/06 時点)
  • 出版日2014-07-19
  • 商品ランキング71897 位
  • 大型本128 ページ
  • ISBN-104822297470
  • 出版社日経BP社

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

no image

VPS に Nokogiri をインストールしたときのトラブル

Bundler を使って Nokogiri をインストールしようとしたが、次のようにエラーメッセージ

記事を読む

icatch_100612765-resized

CentOSのバージョン6.5(64ビット)にRuby2.1.2をインストールする

2014/08/10 時点での最新安定版である Ruby 2.1.2 をインストールしてみたので、そ

記事を読む

no image

プログラミングの「面倒くせー」を減らす試み

プライベートで書くコードや、ちょっとしたスクリプトなんかは Ruby で書くようにしていますが、どう

記事を読む

no image

with_index メソッド

with_index というメソッドを知ったのでメモ。どういうときに使うかのサンプルを載せておく。

記事を読む

no image

Redcarpet を使って Markdown をパースする

Ruby から Redcarpet を使って Markdown をパースしてみた。 せっかくなので

記事を読む

icatch_12845006573-resized

CentOSのバージョン6.5(64ビット)にamazon-ecsをインストールする

Amazon の Product Advertising API を使う作業があったので、Produ

記事を読む

no image

配列の内容をファイルに書き込む

Ruby で書いたスクリプトを module 化していく試みの一貫です。 Array に保持してい

記事を読む

icatch_474695210-resized

amazon-ecsを使った検索のエラー原因を確認する

Amazon が提供しているサービス Product Advertising API を手軽に扱える

記事を読む

no image

ファイルを読み込んでその内容を保持する

Ruby で書いたスクリプトを module 化していく試みの一貫です。 ファイルを読み込んで、そ

記事を読む

no image

amazon-ecs を使って Amazon から関連商品情報を取得するサンプル

次のサンプルスクリプトを書いたが、これに続くもの。 amazon-ecs を使って Amazon

記事を読む

Googleアドセンス用(PC)

Message

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


六 × 2 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑