global以外のgemsetを複数管理していて、
例えば「rails3」というgemsetを使いたいなーという場合の切り替えは、
$ rvm gemset use rails3 Using ruby-1.9.3-head with gemset rails3
とすればいいのだが、PCやターミナルを起動するたびにrvm...とコマンドをたたくのはめんどい。しかもプロジェクトごとに違うのでは間違ってしまう場合もある。どうすればいいんだ?と思い、ググって解決方法見つけました。
参考:rvm のgemsetをおさらい(Mac でRuby) - たぐってつづる 謝謝!
プロジェクトのディレクトリ直下に以下の内容で「.rvmrc」というファイルを作成する。
rvm use ruby-1.9.3-head@rails3
これで、プロジェクトのディレクトリに入ると自動でgemsetを切り替えてくれるようになる。
$ cd sampleapp ==================================================================================== = NOTICE = ==================================================================================== = RVM has encountered a new or modified .rvmrc file in the current directory = = This is a shell script and therefore may contain any shell commands. = = = = Examine the contents of this file carefully to be sure the contents are = = safe before trusting it! ( Choose v[iew] below to view the contents ) = ==================================================================================== Do you wish to trust this .rvmrc file? (/home/username/sampleapp/.rvmrc) y[es], n[o], v[iew], c[ancel]> y Using ruby-1.9.3-head with gemset rails3
一度NOTICEが表示され、rvmの設定ファイルを読み込むかどうか問われる。
これにより切り替わることが確認できる。
試しに別のgemsetを用意。
Gemset名 rails2r187
Rubyバージョン1.8.7-head
Railsバージョン2.3.8 # 2.x系の環境が無かったのでインストール。
$ rvm use 1.8.7-head Using /home/username/.rvm/gems/ruby-1.8.7-head $ rvm gemset create rails2r187 'rails2r187' gemset created (/home/username/.rvm/gems/ruby-1.8.7-head@rails2r187). $ rvm gemset use rails2r187 Using ruby-1.8.7-head with gemset rails2r187 $ rvm gemset install rails --version 2.3.8 installing rails 2.3.8... rails 2.3.8 installed.
sampleapp02というディレクトリを作成。その中にRVMの設定ファイル「.rvmrc」を作成。
$ mkdir sampleapp02 $ vim ./sampleapp02/.rvmrc -.rvmrcの内容---------------------- rvm use ruby-1.8.7-head@rails2r187 -----------------------------------
gamsetを確認する。
$ rvm gemset list_all gemsets for ruby-1.9.3-head (found in /home/username/.rvm/gems/ruby-1.9.3-head) global rails3 gemsets for ruby-1.8.7-head (found in /home/username/.rvm/gems/ruby-1.8.7-head) global rails2r187
それぞれのディレクトリに移動してgemsetが自動で切り替わるか確認。
現在のRVM(gemset)の設定
sampleapp => rails3
sampleapp02 => rails2r187
$ cd sampleapp Using /home/username/.rvm/gems/ruby-1.9.3-head with gemset rails3 $ ruby -v ruby 1.9.3p203 (2012-05-04 revision 35536) [i686-linux] $ rails -v Rails 3.2.3 $ cd ../sampleapp02 Using /home/username/.rvm/gems/ruby-1.8.7-head with gemset rails2r187 $ ruby -v ruby 1.8.7 (2012-04-14 patchlevel 361) [i686-linux] $ rails -v Rails 2.3.8
OKっぽい(^^)