2013/10/28

AlternativesでRubyのバージョンを切り替える

現在最新のAmazon Linux AMI(Amazon Linux AMI 2013.09)に初期導入されているRubyは1.8.7だ。
$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
しかしRuby 1.8.7は引退しました。互換性の問題で1.8.7なのかな?まぁとにかく新しいRubyを使いたいなぁと思って調べていたら、AMIのRelease Notes
You can switch between Ruby 1.8 and 1.9 with one command
って書いてあった。なのでやってみよう。

まずはyum全体を最新化する。
$ sudo yum check-update
$ sudo yum update
次にruby1.9をインストールする。
$ sudo yum install ruby19 
そしてalternativesでrubyというコマンドの向き先を1.9に変更する。
$ sudo alternatives --set ruby /usr/bin/ruby1.9
$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
1.8に戻す場合。
$ sudo alternatives --set ruby /usr/bin/ruby1.8
$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
対話的にも切替が出来る。
$ sudo update-alternatives --config ruby
There are 2 programs which provide 'ruby'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/bin/ruby1.8
   2           /usr/bin/ruby1.9
Enter to keep the current selection[+], or type selection number: 2 
$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
これは便利。なお先述のAMIのRelease Notesに
We expect Ruby 2.0 to land in our Amazon Linux AMI "preview" repository in advance of our 2014.03 release.
と書いてあったので、Ruby 2.0は2014年3月までお待ちくださいってことらしい。