[Ruby][備忘録][Mac][Unix]複数のRuby環境の管理・切替ができるrvmをインストールした
あらすじ
先にWindowsにてRubyのバージョン管理ができるpikをインストールしていたので、今度はWindows以外にrvmをインストールする。
参考サイト
- https://rvm.beginrescueend.com/rvm/install
- http://www.machu.jp/diary/20110521.html#p01:title
- http://d.hatena.ne.jp/mirakui/20100502/1272849327:title
まとめ
とりあえず以下のコマンドを覚える。
- rvm list known
- インストールできるRubyの一覧
- rvm list
- インストールしているRubyの一覧
- rvm install x.x.x
- インストール
- rvm use x.x.x
- Rubyの切り替え
事前準備
- 既にインストールされていたRubyは全部消した。
手順
インストールのため下記コマンドをうつ。
$ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
ホームディレクトリに.rvmが生成される。list knownでインストールできるRuby一覧が表示される。
(2012/04/07追記)command not foundが出る場合はPATHが通ってない。
Installing RVM to /Users/kk_Ataka/.rvm/
Adding rvm PATH line to /Users/kk\_Ataka/.bashrc /Users/kk\_Ataka/.zshrc. RVM sourcing line found in /Users/kk\_Ataka/.bashrc.
$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.6-head
[ruby-]1.8.7[-p352]
[ruby-]1.8.7-head
[ruby-]1.9.1-p378
[ruby-]1.9.1[-p431]
[ruby-]1.9.1-head
[ruby-]1.9.2-p180
[ruby-]1.9.2[-p290]
[ruby-]1.9.2-head
[ruby-]1.9.3-preview1
[ruby-]1.9.3-rc1
[ruby-]1.9.3[-p0]
[ruby-]1.9.3-head
ruby-head
# GoRuby
goruby
# JRuby
jruby-1.2.0
jruby-1.3.1
jruby-1.4.0
jruby-1.6.1
jruby-1.6.2
jruby-1.6.3
jruby-1.6.4
jruby[-1.6.5]
jruby-head
# Rubinius
rbx-1.0.1
rbx-1.1.1
rbx-1.2.3
rbx-1.2.4
rbx[-head]
rbx-2.0.0pre
# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2011.03]
ree-1.8.6-head
ree-1.8.7-head
# Kiji
kiji
# MagLev
maglev[-head]
maglev-1.0.0
# Mac OS X Snow Leopard Only
macruby[-0.10]
macruby-nightly
macruby-head
# IronRuby -- Not implemented yet.
ironruby-0.9.3
ironruby-1.0-rc2
ironruby-head
とりあえず1.8系のために1.8.7、1.9系のために1.9.3をインストールする。installコマンドを使う。
$ rvm install ruby-1.8.7
Installing Ruby from source to: /Users/kk_Ataka/.rvm/rubies/ruby-1.8.7-p352, this may take a while depending on your cpu(s)...
ruby-1.8.7-p352 - #fetching
ruby-1.8.7-p352 - #downloading ruby-1.8.7-p352, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4108k 100 4108k 0 0 1718k 0 0:00:02 0:00:02 --:--:-- 2576k
ruby-1.8.7-p352 - #extracting ruby-1.8.7-p352 to /Users/kk_Ataka/.rvm/src/ruby-1.8.7-p352
ruby-1.8.7-p352 - #extracted to /Users/kk_Ataka/.rvm/src/ruby-1.8.7-p352
Applying patch 'stdout-rouge-fix' (located at /Users/kk_Ataka/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch)
ruby-1.8.7-p352 - #configuring
ruby-1.8.7-p352 - #compiling
ruby-1.8.7-p352 - #installing
Retrieving rubygems-1.8.10
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 243k 100 243k 0 0 533k 0 --:--:-- --:--:-- --:--:-- 1113k
Extracting rubygems-1.8.10 ...
Removing old Rubygems files...
Installing rubygems-1.8.10 for ruby-1.8.7-p352 ...
Installation of rubygems completed successfully.
ruby-1.8.7-p352 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.8.7-p352 - #importing default gemsets (/Users/kk_Ataka/.rvm/gemsets/)
Install of ruby-1.8.7-p352 - #complete
$ rvm install ruby-1.9.3
Installing Ruby from source to: /Users/kk_Ataka/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)...
ruby-1.9.3-p0 - #fetching
ruby-1.9.3-p0 - #downloading ruby-1.9.3-p0, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9330k 100 9330k 0 0 1775k 0 0:00:05 0:00:05 --:--:-- 2094k
ruby-1.9.3-p0 - #extracting ruby-1.9.3-p0 to /Users/kk_Ataka/.rvm/src/ruby-1.9.3-p0
ruby-1.9.3-p0 - #extracted to /Users/kk_Ataka/.rvm/src/ruby-1.9.3-p0
Fetching yaml-0.1.4.tar.gz to /Users/kk_Ataka/.rvm/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 460k 100 460k 0 0 155k 0 0:00:02 0:00:02 --:--:-- 261k
Extracting yaml-0.1.4.tar.gz to /Users/kk_Ataka/.rvm/src
Configuring yaml in /Users/kk_Ataka/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/kk_Ataka/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/kk_Ataka/.rvm/usr
ruby-1.9.3-p0 - #configuring
ruby-1.9.3-p0 - #compiling
ruby-1.9.3-p0 - #installing
Removing old Rubygems files...
Installing rubygems-1.8.10 for ruby-1.9.3-p0 ...
Installation of rubygems completed successfully.
ruby-1.9.3-p0 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p0 - #importing default gemsets (/Users/kk_Ataka/.rvm/gemsets/)
Install of ruby-1.9.3-p0 - #complete
gemは最新版? が入ってしまった。
※ところで、rvmでインストールしたRubyたちは~/.rvm/rubies下に入れられていく。Ruby切り替え時にパスなんかをセットしてくれるスクリプトが.rvm/scriptの下にあるのでシェル起動時に実行してくれるようにする必要がある。
if [[ -s .rvm/scripts/rvm ]] ; then source .rvm/scripts/rvm ; fi
インストールしたRubyはlistコマンドで確認できる。
$ rvm list
rvm rubies
ruby-1.8.7-p352 [ i686 ]
ruby-1.9.3-p0 [ x86_64 ]
Rubyを切り替えるときはuseコマンドを使う。1.8に切り替え。
$ rvm use 1.8.7
Using /Users/kk_Ataka/.rvm/gems/ruby-1.8.7-p352
$ rvm list
rvm rubies
=> ruby-1.8.7-p352 [ i686 ]
ruby-1.9.3-p0 [ x86_64 ]
$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10.8.0]
.rvm/rubies/ruby-1.8.7xxx/bin下のものを使っている。
$ which ruby
/Users/kk_Ataka/.rvm/rubies/ruby-1.8.7-p352/bin/ruby
$ which gem
/Users/kk_Ataka/.rvm/rubies/ruby-1.8.7-p352/bin/gem
$ gem -v
1.8.10
bundlerとrakeはデフォルトで入っている模様。
$ gem list
*** LOCAL GEMS ***
bundler (1.0.21 ruby)
rake (0.9.2)
次は1.9に切り替え。
$ rvm use 1.9.3
Using /Users/kk_Ataka/.rvm/gems/ruby-1.9.3-p0
$ rvm list
rvm rubies
ruby-1.8.7-p352 [ i686 ]
=> ruby-1.9.3-p0 [ x86_64 ]
$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
きちんと1.9に切り替わっている。パスも。
$ which ruby
/Users/kk_Ataka/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
$ which gem
/Users/kk_Ataka/.rvm/rubies/ruby-1.9.3-p0/bin/gem
$ gem -v
1.8.10
$ gem list
*** LOCAL GEMS ***
bundler (1.0.21 ruby)
rake (0.9.2)
rvm listで”=>“の矢印ができていれば切り替え成功。
切り替えたのに矢印が出ていなかったら、rvm導入前に既にインストールしているRubyが優先的に見られている?[1] pikでやらかした時みたいにパスがうまく書き換わっていないという凡ミスをしている可能性があるかもしれない。
今後
rvmには一つのRubyバージョンに対して複数のgem環境を持たせることもできるらしい。1.8.7のtest環境用とかRails動かす用みたいな感じで。これはまた今度学ぶ。
[1] ただ、rvm環境以外のRubyとも行き来ができる(rvm system)らしいのでよくわからん。