VirtualBox に Debian squeeze をインストールした環境で確認。


root@debian64:~# uname -a
Linux debian64 2.6.32-5-amd64 #1 SMP Fri May 10 08:43:19 UTC 2013 x86_64 GNU/Linux

Ruby 1.8 をインストール

 
root@debian64:~# aptitude install ruby
以下の新規パッケージがインストールされます:
  libruby1.8{a} ruby ruby1.8{a} 
更新: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
2,393 kB のアーカイブを取得する必要があります。展開後に 8,364 kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] y
取得:1 http://cdn.debian.net/debian/ squeeze/main libruby1.8 amd64 1.8.7.302-2squeeze1 [2,061 kB]
取得:2 http://cdn.debian.net/debian/ squeeze/main ruby1.8 amd64 1.8.7.302-2squeeze1 [310 kB]
取得:3 http://cdn.debian.net/debian/ squeeze/main ruby all 4.5 [21.7 kB]
2,393 kB を 3秒 秒でダウンロードしました (691 kB/s)
未選択パッケージ libruby1.8 を選択しています。
(データベースを読み込んでいます ... 現在 38618 個のファイルとディレクトリがインストールされています。)
(.../libruby1.8_1.8.7.302-2squeeze1_amd64.deb から) libruby1.8 を展開しています...
未選択パッケージ ruby1.8 を選択しています。
(.../ruby1.8_1.8.7.302-2squeeze1_amd64.deb から) ruby1.8 を展開しています...
未選択パッケージ ruby を選択しています。
(.../apt/archives/ruby_4.5_all.deb から) ruby を展開しています...
man-db のトリガを処理しています ...
menu のトリガを処理しています ...
libruby1.8 (1.8.7.302-2squeeze1) を設定しています ...
ruby1.8 (1.8.7.302-2squeeze1) を設定しています ...
ruby (4.5) を設定しています ...
menu のトリガを処理しています ...
 
root@debian64:~# ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
 
root@debian64:~# which ruby
/usr/bin/ruby

root@debian64:~# ls -la /usr/bin | grep ruby
lrwxrwxrwx  1 root   root          7 2013-09-19 23:10 ruby -> ruby1.8
-rwxr-xr-x  1 root   root       5424 2011-06-16 14:07 ruby1.8

ちなみに aptitude install ruby ではなく aptitude install ruby1.8 でインストールした場合は、 ruby -> ruby1.8 のシンボリックリンクが張られない。

次に Ruby 1.9 をインストール


root@debian64:~# aptitude install ruby1.9.1
以下の新規パッケージがインストールされます:
  libffi5{a} libruby1.9.1{a} libyaml-0-2{a} ruby1.9.1 
更新: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。
5,343 kB のアーカイブを取得する必要があります。展開後に 14.7 MB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] y
取得:1 http://cdn.debian.net/debian/ squeeze/main libffi5 amd64 3.0.9-3 [20.1 kB]
取得:2 http://cdn.debian.net/debian/ squeeze/main libyaml-0-2 amd64 0.1.3-1 [54.6 kB]
取得:3 http://security.debian.org/ squeeze/updates/main libruby1.9.1 amd64 1.9.2.0-2+deb6u1 [4,515 kB]
取得:4 http://security.debian.org/ squeeze/updates/main ruby1.9.1 amd64 1.9.2.0-2+deb6u1 [754 kB]
5,343 kB を 26秒 秒でダウンロードしました (201 kB/s)                            
未選択パッケージ libffi5 を選択しています。
(データベースを読み込んでいます ... 現在 39357 個のファイルとディレクトリがインストールされています。)
(.../libffi5_3.0.9-3_amd64.deb から) libffi5 を展開しています...
未選択パッケージ libyaml-0-2 を選択しています。
(.../libyaml-0-2_0.1.3-1_amd64.deb から) libyaml-0-2 を展開しています...
未選択パッケージ libruby1.9.1 を選択しています。
(.../libruby1.9.1_1.9.2.0-2+deb6u1_amd64.deb から) libruby1.9.1 を展開しています...
未選択パッケージ ruby1.9.1 を選択しています。
(.../ruby1.9.1_1.9.2.0-2+deb6u1_amd64.deb から) ruby1.9.1 を展開しています...
man-db のトリガを処理しています ...
menu のトリガを処理しています ...
libffi5 (3.0.9-3) を設定しています ...
libyaml-0-2 (0.1.3-1) を設定しています ...
libruby1.9.1 (1.9.2.0-2+deb6u1) を設定しています ...
ruby1.9.1 (1.9.2.0-2+deb6u1) を設定しています ...
menu のトリガを処理しています ...
 
root@debian64:~# ruby1.9.1 -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
 
root@debian64:~# which ruby1.9.1
/usr/bin/ruby1.9.1
 
root@debian64:~# ls -la /usr/bin | grep ruby
lrwxrwxrwx  1 root   root          7 2013-09-19 23:10 ruby -> ruby1.8
-rwxr-xr-x  1 root   root       5424 2011-06-16 14:07 ruby1.8
-rwxr-xr-x  1 root   root       5640 2013-08-08 21:33 ruby1.9.1

ruby1.9.1 を ruby コマンドで使えるように update-alternatives で設定


root@debian64:~# update-alternatives --list ruby
update-alternatives: エラー: ruby の alternatives がありません。
 
root@debian64:~# update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.8 0
update-alternatives: /usr/bin/ruby (ruby) を提供するために 自動モード で /usr/bin/ruby1.8 を使います。
 
root@debian64:~# update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 1
update-alternatives: /usr/bin/ruby (ruby) を提供するために 自動モード で /usr/bin/ruby1.9.1 を使います。
 
root@debian64:~# update-alternatives --config ruby
alternative ruby (/usr/bin/ruby を提供) には 2 個の選択肢があります。
 
  選択肢    パス              優先度  状態
------------------------------------------------------------
* 0            /usr/bin/ruby1.9.1   1         自動モード
  1            /usr/bin/ruby1.8     0         手動モード
  2            /usr/bin/ruby1.9.1   1         手動モード
 
現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 
 
root@debian64:~# update-alternatives --list ruby
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1
 
root@debian64:~# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
 
root@debian64:~# which ruby
/usr/bin/ruby
 
root@debian64:~# ls -la /usr/bin | grep ruby
lrwxrwxrwx  1 root   root         22 2013-09-19 23:14 ruby -> /etc/alternatives/ruby
-rwxr-xr-x  1 root   root       5424 2011-06-16 14:07 ruby1.8
-rwxr-xr-x  1 root   root       5640 2013-08-08 21:33 ruby1.9.1
 
root@debian64:~# ls -la /etc/alternatives/ruby
lrwxrwxrwx 1 root root 18 2013-09-19 23:14 /etc/alternatives/ruby -> /usr/bin/ruby1.9.1

これで ruby と打つと ruby1.9.1 が実行されるようになった。

参考までに update-alternatives のヘルプ


root@debian64:~# update-alternatives --help
使い方: update-alternatives [<オプション> ...] <コマンド>
 
コマンド:
  --install <リンク> <名前> <パス> <優先度>
    [--slave <リンク> <名前> <パス>] ...
                           システムに alternatives のグループを追加する
  --remove <名前> <パス>   <名前> のグループ alternative から <パス> を削除する
  --remove-all <名前>      alternatives システムから <名前> のグループを削除する
  --auto <名前>            マスターリンク <名前> を、自動モードに切り替える
  --display <名前>         <名前> グループについての情報を表示する
  --query <名前>           --display <名前> の機械解析向けバージョン
  --list <名前>            <名前> グループのすべてのターゲットを表示する
  --config <名前>          <名前> グループの alternatives を表示し、ユーザに
                           使用したいものを尋ねる
  --set <名前> <パス>      <名前> の alternative として <パス> を設定する
  --all                    すべての alternatives に対して --config を呼び出す
 
<リンク> は /etc/alternatives/<名前> を指すシンボリックリンクです。
  (例: /usr/bin/pager)
<名前> はこのリンクグループのマスター名です。
  (例: pager)
<パス> は alternative ターゲットファイルのうちの 1 つの場所です。
  (例: /usr/bin/less)
<優先度> は整数です; より大きな数を持つ選択肢は、自動モードにおいてより高い
優先度を持ちます。
 
オプション:
  --altdir <ディレクトリ>     alternatives ディレクトリを変更する
  --admindir <ディレクトリ>   管理ディレクトリを変更する
  --skip-auto                alternatives が自動モードで正しく設定されるよう
                             プロンプトをスキップする (--config のときのみ関連)
  --verbose                  冗長な操作として、より多くの出力にする
  --quiet                    静かな操作として、最小限の出力にする
  --help                     このヘルプを表示する
  --version                  バージョン番号を表示する

Ref.

tags: debian ruby

Posted by NI-Lab. (@nilab)