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)