LoginSignup
15
15

More than 5 years have passed since last update.

Rubyのプロジェクト毎のモジュール管理・バージョン管理(rbenv、bundler)まとめ

Last updated at Posted at 2015-07-06

はじめに

動機

しばらくnpm(Node.jsのパッケージ・マネージャ。プロジェクト毎にモジュールをインストールすることができる)を使っていたので、同じようなことをRubyでやってみました。

目標

  1. プロジェクト毎にRubyのバージョンを分ける
  2. プロジェクト毎にインストールするgemを分ける

下準備

RVMのアンインストール

$ rvm seppuku

「切腹」って・・・

あと、.bash_profile.bashrc にもrvmのパスなどが残っているので、消す。

グローバルにインストールされたgemのアンインストール

以下の魔法のようなコマンドで、基本的なgem以外のすべてのgemを削除してしまいます:

$ gem uninstall -axI `gem list --no-versions | egrep -v 'test-unit|rdoc|bigdecimal|io-console|json|minitest|psych|rake'`

rbenvのインストール

$ brew install rbenv ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

インストール可能なRubyのバージョンのリストを表示

$ rbenv install -l
Available versions:
  1.8.6-p383
  1.8.6-p420
...
...

rbenv管理下にRubyをインストール

$ rbenv install 2.2.0

インストール済みRuby一覧を表示

$ rbenv versions
  system
* 2.2.0 (set by /Users/USERNAME/.rbenv/version)
  2.1.5

グローバルにbundlerをインストール

bundlerはグローバルにインストールします:

$ gem install bundler

1. プロジェクトにRubyをインストール

ローカルのフォルダにRubyをインストール

$ mkdir app
$ cd app/
$ rbenv local 2.2.0
$ rbenv version
2.2.0 (set by PROJECT_FOLDER/.ruby-version)

2. プロジェクトにgemをインストール

ローカルにGemをインストール

$ mkdir -p vender/bundle
$ vim Gemfile
$ bundle install --path vender/bundle --binstubs=bundle_bin
  • --path vender/bundleはgemをインストールするフォルダの指定
  • --binstubs=bundle_binはあとでbundle execを省略するためのオプション

ローカルインストール済みの gem のリストを表示

$ bundle list
Gems included by the bundle:
  * rack (1.6.4)
  * rack-protection (1.5.3)
  * shotgun (0.9.1)
  * sinatra (1.4.6)
  * sinatra-cross_origin (0.3.2)
  * tilt (2.0.1)

Gemの実行ファイルの実行

$ rbenv exec shotgun -v

binstubsを設定しているので以下のようにしなくて良いです:

$ rbenv exec bundle exec shotgun -v

IRBの実行

$ rbenv exec irb

補足

rbenv管理下のRubyを削除

$ rbenv uninstall 2.1.5

デフォルトで使うRubyのバージョンを指定

$ rbenv global 2.2.0
$ rbenv version
2.2.0 (set by /Users/USERNAME/.rbenv/version)

ローカルにインストールしたRubyを削除

Rubyのバージョンはデフォルトのものになります。

$ rbenv local --unset

rbenv execを短くする

いちいち入力するのは大変ですよね。

$ alias re='rbenv exec'

参考文献

Ruby の gem をプロジェクト毎に Bundler で管理する - fugafuga.write()
rbenvのよく使うコマンドまとめ - TASK NOTES


ブログやってます:http://weed.nagoya

15
15
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
15
15