Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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"
muran001
2014年6月から大手SIerに見切りをつけてWeb系のエンジニアとして活動してます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした