rvm のgemsetをおさらい(Mac でRuby)
rvm ではrubyのバージョンだけではなく,gemの組合せも管理できるのです.
sinatraで開発するセット,rails 3を使うセット,...etc
開発内容にあわせて切り分けられるってわけですね.
前回のエントリ に引き続き
Snow Leopard でrubyの環境を整えるついでに
rvmのgemset についておさらいしておこうと思います.
やってみる
ruby 1.9.2 を例に使ってみます.
$ rvm use 1.9.2
最近お気に入りのnanoc用のセットを作ってみます.
$ rvm gemset create nanoc
できたセットを見てみると....
$ rvm gemset list global nanoc
globalというのが最初からあります.
このセットは共通して使うgemをインストールするために使うようです.
ではとりあえずglobalを利用してみます.
$ rvm gemset use global
これは
$ rvm use 1.9.2@global
もしくは
$ rvm use @global
も同じ意味です.
あらためて一覧を見てみると
$ rvm gemset list
=> global
nanoc
と現在使っているセットに"=>" と矢印がつきます.
いつでも使いそうな rdoc, ri , wirble をインストールして,
nanoc セットに切り替えてみると
$ rvm gemset use nanoc $ gem list *** LOCAL GEMS *** rake (0.9.2, 0.8.7) rdoc (3.6.1) wirble (0.1.3)
と,たしかにglobal でインストールしたgemが一覧に出てきます.
あとはnanoc での開発用に必要なgemをインストールして環境構築終了っ!
賢い使い方
新規でセットを作って即その環境を使うときは
$ rvm use --create 1.9.2@rails3
なんて一行で済みます.便利!
また,開発内容を切り替えるときに手動は面倒!なんてときは
開発内容のディレクトリに.rvmrc ファイルを置いて
rvm use 1.9.2@nanoc
なんて記述しておくと,ディレクトリを移動したときに
gemsetも切り替わっちゃいます.
ただし...
ディレクトリ移動のたびに切り替え確認を問われるので,
それが面倒な場合,homeの.rvmrcに設定を追加しておくとよいでしょう.
$ vi ~/.rvmrc
rvm_install_on_use_flag=1
使いそうなコマンド
ヘルプを見てみると...
$ rvm gemset help
Usage:
rvm gemset [action]
Action:
{import,export,create,copy,rename,empty,delete,name,dir,list,list_all,gemdir,install,pristine,clear,use,update,unpack,globalcache}
とずいぶんできることがあって知らないものも結構ある!
とりあえず使いそうなものだけピックアップしておくと...
$ rvm gemset create 名称 # セットを新規作成 $ rvm use 名称 # セットの切り替え $ rvm gemset empty # インストールしたgem を取り除く $ rvm gemset delete 名称 # セット自体を消去 $ rvm gemset install 名称 # gem install... と同じ
くらいでしょうか.
セットを作りすぎて迷子になったときは
$ rvm gemset name # 現在使っているセット $ rvm gemset list # 現在使っているruby のバージョン内のgemセット一覧 $ rvm gemset list_all # rubyのバージョンをまたいだgemセット一覧 $ rvm gemset dir # 現在使っているセットのディレクトリパス
が使えると便利!
追記
rubyのバージョンを変えて同じgemsetを使いたい場合
$ rvm gemset copy ruby1.9.2-p180@global ruby1.9.2-p290@global
のように簡単にコピーできます :-)