[Ruby] rbenv-default-gems, Bundler をインストールする

調べたところでは、このように管理をするようです。

  • グローバルにインストールするgemは、gemコマンド。
  • 各プロジェクト毎のgemは、bundlerで管理する
    rbenv-gemset というのも同じようなパッケージ管理を担うものかな?

rbenv-default-gems

rbenv installした際に一緒にインストールしたいgemを管理出来るソフトウェア。
グローバルにインストールしているgemは、rbenv installするたびに、gem install し直さねば行けないよう。
rbenv-default-gems で設定しておけば、自動化できるようです。

% brew install rbenv-default-gems
==> Downloading https://github.com/sstephenson/rbenv-default-gems/archive/v1.0.0
######################################################################## 100.0%
  /usr/local/Cellar/rbenv-default-gems/1.0.0: 4 files, 16K, built in 5 seconds

設定ファイルを作成します。

% vim ~/.rbenv/default-gems

例えばこんな感じでしょうか?

~/.rbenv/default-gems
bundler
compass
haml
pry
sass
% gem list
*** LOCAL GEMS ***
bigdecimal (1.2.0)
bundler (1.3.5)
io-console (0.4.2)
json (1.7.7)
minitest (4.3.2)
psych (2.0.0)
rake (10.1.0, 0.9.6)
rdoc (4.0.0)
test-unit (2.0.0.0)

設定内容通りgemがインストールされるか試してみます。

% rbenv install 2.0.0-p247
rbenv: /Users/***/.rbenv/versions/2.0.0-p247 already exists
continue with installation? (y/N) y
Downloading ruby-2.0.0-p247.tar.gz...
-> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
Installing ruby-2.0.0-p247...
Installed ruby-2.0.0-p247 to /Users/***/.rbenv/versions/2.0.0-p247
Successfully installed bundler-1.3.5
Parsing documentation for bundler-1.3.5
1 gem installed
Fetching: sass-3.2.9.gem (100%)
Successfully installed sass-3.2.9
:
:
4 gems installed
Successfully installed sass-3.2.9
Parsing documentation for sass-3.2.9
1 gem installed

% gem list
*** LOCAL GEMS ***
bigdecimal (1.2.0)
bundler (1.3.5)
chunky_png (1.2.8)
coderay (1.0.9)
compass (0.12.2)
fssm (0.2.10)
haml (4.0.3)
io-console (0.4.2)
json (1.7.7)
method_source (0.8.1)
minitest (4.3.2)
pry (0.9.12.2)
psych (2.0.0)
rake (10.1.0, 0.9.6)
rdoc (4.0.0)
sass (3.2.9)
slop (3.4.5)
test-unit (2.0.0.0)
tilt (1.4.1)

依存関係があると思われるgemも含め、インストールされたようです。
その他、以下が参考になりました。

Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで) – Qiita [キータ]

  • gemのインストール先の判断(Ruby環境下 or bundlerでのローカルインストール)について
  • 間違えてRuby環境の方にいろんなGemが入ってしまった場合の対処
  • 不要になったバージョンのRuby環境を削除する
  • rbenvで、1.9.3-p125より古いrubyをビルド・インストールする

Bundler インストール

RubyGemsの依存関係管理ソフトウェア。

% gem install bundler
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
Parsing documentation for bundler-1.3.5
Installing ri documentation for bundler-1.3.5
1 gem installed

Bundler の使い方については、後で試しますが、簡単にまとめると下記のようです。
1. プロジェクトディレクトリを作成、移動
2. bundle init を実行
3. 生成された Gemfile を編集し、利用するgemを記載する
4. bundle install

一時的にバージョンを変更して確認する

% rbenv exec gem list
*** LOCAL GEMS ***
bigdecimal (1.2.0)
bundler (1.3.5)
chunky_png (1.2.8)
coderay (1.0.9)
compass (0.12.2)
fssm (0.2.10)
haml (4.0.3)
io-console (0.4.2)
json (1.7.7)
method_source (0.8.1)
minitest (4.3.2)
pry (0.9.12.2)
psych (2.0.0)
rake (10.1.0, 0.9.6)
rdoc (4.0.0)
sass (3.2.9)
slop (3.4.5)
test-unit (2.0.0.0)
tilt (1.4.1)
% rbenv shell 1.9.3-p448
% ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]
% rbenv exec gem list
*** LOCAL GEMS ***
bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
% rbenv shell --unset
% ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]

Gemfile のバージョン指定方法

gem 'rails'       # 最新バージョン
gem 'rails', '3.1.12'     # 3.1.12
gem 'rails', '>= 3.1.12'    # 3.1.12 以上
gem 'rails', '~> 3.1.12'    # 3.1.12 以上、3.2 未満