(続)モダンかもしれないRubyの開発環境構築
perlbrewを導入すると$HOME/perl5以下に関連ファイルが生成されます。
rvmを導入すると$HOME/.rvm以下に関連ファイルが生成されます。
これはほとんど同じもの?
前提
私はperlbrewの事をそんなに知りません。
私はrvmの事を全くしりません。
なので突っ込みは歓迎します。
cpanとgem
perlbrewを使用中にcpanモジュールをインストールすると以下のディレクトリにインストールされます。
$HOME/perl5/perlbrew/perls/perl-x.x.x/lib
それぞれ異なるバージョンに応じて格納されるディレクトリが用意されているのでバージョンによってそれぞれインストールすれば良いわけです。
rvm+gemの場合も同じようにバージョン毎によって異なるディレクトリが用意されていました。
% ls -1 $HOME/.rvm/gems [~/.rvm/gems] -help cache ruby-1.8.7-p334 ruby-1.8.7-p334@global ruby-1.9.2-p180 ruby-1.9.2-p180@global
gem で何かinstall してみましょう
% rvm use 1.9.2 Using /Users/okamura/.rvm/gems/ruby-1.9.2-p180 % ls /Users/okamura/.rvm/gems/ruby-1.9.2-p180/gems/ rake-0.8.7 % gem install mspec ... % ls /Users/okamura/.rvm/gems/ruby-1.9.2-p180/gems/ mspec-1.5.17 rake-0.8.7
思った通り、使用しているバージョンにマッチしたディレクトリにインストールされています。
おそらくperlbrewとrvmはほとんど同じものだと思います。
gemset?
rvmではgemを自由に作成する事ができ、かつそれと異なるバージョンのrubyとを自由に組み合わせる事ができるようです。
gemsetを作成する
% rvm gemset create hoge % rvm gemset list gemsets for ruby-1.9.2-p180 (found in /Users/okamura/.rvm/gems/ruby-1.9.2-p180) global hoge
gemsetを切り替える。まっさらなので自由にできる
% rvm 1.9.2-p180@hoge % gem list [~] *** LOCAL GEMS *** rake (0.8.7)
デフォルトに戻る
% gem list [~] *** LOCAL GEMS *** mspec (1.5.17) rake (0.8.7)
hogeを消す
% rvm gemset delete hoge [~] WARN: Are you SURE you wish to remove the entire gemset directory 'hoge' (/Users/okamura/.rvm/gems/ruby-1.9.2-p180@hoge)? (anything other than 'yes' will cancel) > yes
確認
% rvm gemset list [~] gemsets for ruby-1.9.2-p180 (found in /Users/okamura/.rvm/gems/ruby-1.9.2-p180) global
感想
gemsetを自由に作成できて、それを切り替えて使う事が簡単にできるようです。
プロジェクト毎によってgemsetを作成したりする事もできるでしょうし、globalに共通のモジュールを格納したりできたりするのかな?
コマンド一覧は以下の模様。copyもできるらしい。
{import,export,create,copy,rename,empty,delete,name,dir,list,list_all,gemdir,install,pristine,clear,use,update,unpack,globalcache}
もしかしてperlbrewでも同じ事ができるかな?
次はRuby on Rails やってみよう。