今までruby187は、macデフォルトのp174を使用していましたが
去年クリスマスにruby187-p330/192-p136がリリースされたので
これを機に、ruby187もrvmにインストールしました。
インストール
rvmの更新
$ rvm update --head $ rvm reload
install
$ rvm install 1.8.7-p330 -C --with-readline-dir=$HOME/.rvm/usr $ rvm install 1.9.2-p136 -C --with-readline-dir=$HOME/.rvm/usr
-headでもいいのかな。
gemの移行(まずは187)
gemset copy
manualを見てみるとcopy可能と書いてあるのでチャレンジ。
RVM: Ruby Version Manager - Copying gemsets.
# 187のgemは--user-installを使用して.gem以下に格納しているが # GEM PATHの最初のパスがmacのデフォルトのところが指定されているため # 明示的に変更。 $ export GEM_HOME=$HOME/.gem/ruby/1.8 # gemsetは未使用だけど、デフォルトで作成されるglobaへ移行してみる $ rvm gemset copy system 1.8.7-p330@global
失敗。
gemset export/import
どうやら、export/importが用意されている模様なので試してみる。
$ rvm gemset export
お、成功。defaut.gems というファイルにgemの一覧が出力されているだけのようだ。
$ rvm use 1.8.7@global $ rvm gemset import default.gems
で一応できた。
gemの移行(続いて192)
gemset copy
$ rvm gemset copy 1.9.2-p0 1.9.2-p136@global Copying gemset from 1.9.2-p0 to 1.9.2@global Making gemset for 1.9.2@global pristine.
お、いけた。
しかし、rvmrcにgemset(@global)を指定しないとダメな模様。
$ cat .rvmrc rvm 1.9.2@global
おまけ
patchlevelのバージョンアップでもgem入れ直しというのは結構きつい。
.rvm/gems へgemsetsが作成されるようだし、
もしかするとsymblic linkでもいけんじゃねーかなと思って試してみると
一応できた(細かい検証は行ってないけど)。
20110112追記。
できませんでした。
.rvm/gems/ruby-
shepangがrubyのフルパスが切られてました。
なので、おとなしくexp/imp しといた方が無難です。
(ちなみに私は、symbolic linkじゃなく、mvしちゃったので、bin以下を置換して動かしてます。非推奨。)
$ cd .rvm/gems $ mv ruby-1.9.2-p136@global/ ruby-1.9.2-p136@global_bk $ ln -s ruby-1.9.2-p0/ ruby-1.9.2-p136@global
gemsetの管理単位が、patchlevelまで含んじゃってるのが問題っぽいよね。
やっぱり、バージョン単位にして欲しいところ。
あと
デフォルトgemset無しの状態でも、@globalを適用して欲しい。
rvm use 1.9.2@global って面倒(aliasとかでやればいいんだけど)。
もしくは、デフォルトgemset無しじゃなく、@defaultとか@globalとかにして
自動で読み込んでくれるといいかな。
ここ見ると、interpreter毎の共通モノは、@globalへと書いているし、
デフォルト@globalかなぁ。ついつい@global忘れてinstallしてしまいそう。
RVM: Ruby Version Manager - Global gemsets
追記
install時に -C --with-readline-dir=$HOME/.rvm/usr を付け忘れてたので追記。