LoginSignup
46
49

More than 5 years have passed since last update.

Rbenvを用いた複数バージョンRuby管理方法

Last updated at Posted at 2014-03-24

rbenvの導入とRubyのインストール

  • rbenvの導入
# (Macの場合)
$ brew install rbenv
$ brew install ruby-build
$ brew install readline

gitから取って来たい場合はこちらでも可能

$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ mkdir -p ~/.rbenv/plugins
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
  • パスの設定
# ZSH用
$ vi ~/.zshrc
export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init - zsh)"
  • rubyのインストール
# ほしいバージョンを確認
$ rbenv install -l
# インストール
$ rbenv install 2.1.1
# 変更があった場合のおまじない
$ rbenv rehash
# グローバル(標準)に使えるように設定
$ rbenv global 2.1.1
  • bundlerのインストール
# これはグローバルのrubyに対して入れることになる
$ gem install bundler
$ rbenv rehash

プロジェクト毎に使用するRubyを変える


* 現在インストールされているrubyのバージョン確認

$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161)

$ gem -v
2.2.2

$ rbenv versions
  system
  1.9.3-rc1
  2.0.0-rc2
* 2.1.1
  • 特定プロジェクトに移動しrubyのバージョンを指定
$ cd project1

# 変えたいバージョンを指定する
$ rbenv local 1.9.3-rc1
# おまじないは忘れずに
$ rbenv rehash

# 成功すると.ruby-versionファイルが生成される
$ cat .ruby-version
1.9.3-rc1

$ruby -v
ruby 1.9.3dev (2011-09-23 revision 33323)

$gem -v
1.8.0

特定プロジェクト毎にgemを管理する

system領域にgemを入れるとごちゃつくのでプロジェクト毎に管理できるようにします。

  • bundlerでgemインストール先を指定する
# 特定のプロジェクトのみで有効になる
$ bunle install --path <指定フォルダ>
# 上記でインストールしたものは以下で実行
$ bundle exec <コマンド名>

なお--pathで指定した場合には、.bunle/configとして情報が残りますので、次回以降は--pathを指定する必要はなくなります。

  • bundlerで開発環境、テスト環境、本番環境を管理する

Gemfileではグループを使って環境ごとのgem構成を使い分けることができます。

:production -> 本番環境
:development -> 開発環境
:test -> テスト環境

$ vi Gemfile
group :production do
    gem 'capistrano'
end

group :development do
    gem 'less'
    gem 'rspec-rails'
end

group :test do
    gem 'rspec'
end

そして環境ごとに--without指定でインストールしたくないものを指定します。

# 本番環境(production)にインストールする場合
$ bundle install --without development test
# 開発環境(development)にインストールする場合
$ bundle install --without production test
# テスト環境(test)にインストールする場合
$ bundle install --without production development
  • bundler管理のgemを削除する

bundlerで--path指定してgemインストールしている場合、
いらなくなったら上記フォルダごと削除すれば元にもどります。

その他Tips

  • gemインストールを早くする

デフォルトだとインストール時にドキュメント関係もインストールするので結構時間がかかります。

不要な場合は.gemrcでインストールしないように指定します。

$ vi ~/.gemrc
~/.gemrc
gem : --no-ri --no-rdoc
  • GitHubにあるgemを利用する
$ vi Gemfile
gem "goo", :git => "https://github.com/bar/foo.git"
46
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
49