mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Ruby 2.0.0-p0 ソースインストール!

[ プログラミング ] [ Ruby ]

こんばんは。

普段、当方はメインで使用する環境の Ruby はソースをビルドしてインストールしています。
(サブで使用するバージョンは rbenv を使用しています)

過去にも同様の記事は公開してますが、 Ruby が 2.0.0 とメジャーバージョンアップ(グレードアップ?)したので、初心に戻って Ruby をソースをビルドしてインストール手順を記録しておきます。

0. 前提条件

  • Linux Mint 14 Nadia (64bit) での作業を想定。
    Linux ディストリビューションやバージョンは、特に問わないはず。Windows は未確認。
  • Ruby 1.9.3-p392 が既にソースビルドによりインストール済み。
    (インストール済みのバージョンは問わない)
    当然、 Ruby 未インストールならそれでもよいが、必要なパッケージ(yaml 等)があらかじめインストールされていないと、インストールには成功しても機能しないものがあるかも知れない。
  • ビルド・インストール作業は一般ユーザで行う。(スーパーユーザになって作業してもよい)

1. Ruby 旧バージョンのアンインストール

ソースをビルドしてインストールしている古いバージョンの Ruby (今回の場合 1.9.3-p392)をアンインストールする。
(当方の場合、ソースは /usr/local/src に展開している。)

1
2
3
4
$ cd /usr/local/src/ruby-1.9.3-p392
$ cat .installed.list | sudo xargs rm
$ cd ..
$ sudo rm -rf ruby-1.9.3-p392

ちなみに、上記を説明すると以下のとおり。

  • インストールしたファイルリストが .installed.list に書かれている。
  • xargs rm で、リストの各行に rm コマンドを適用する。
  • /usr/local/bin などがディレクトリごと消えるとまずいので、 rm コマンドに -r オプションは付けない。
  • .installed.list が存在しなかったり空の場合は、./configure, make, make install をやり直す。

2. Ruby-2.0.0-p0 のインストール

以下のようにしてインストールする。
アーカイブファイルの配置先は /usr/local/src ディレクトリとしている。
後は、展開して、いつものように ./configure, make, make install しているだけ。

1
2
3
4
5
6
$ sudo wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz
$ sudo tar zxvf ruby-2.0.0-p0.tar.gz
$ cd ruby-2.0.0-p0
$ sudo ./configure
$ sudo make
$ sudo make install

3. インストール確認

以下のようにバージョンを表示させてみて、インストールできているか確認する。

1
2
3
4
$ ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
$ gem -v
2.0.0

4. 動作確認

irb で動作確認するなり、スクリプトファイルを作成して動作確認するなりしてみる。
(ここでは、特に紹介しない)

5. ベンチマークテスト

Ruby 1.9.3-p392 でのベンチマークは残念がら取り忘れた。
ほんの少し間に Ruby 1.9.3-p385 で取ったベンチマークと Ruby 2.0.0-p0 でのベンチマークを比較してみた。(おそらく条件(環境)は同じのはず)
使用したスクリプトは、以前「* Ruby - 処理実行時間計測! - mk-mode BLOG」で紹介した階乗を計算させるスクリプト。
ちなみに、以下では同じスクリプを10回程度実行して、平均的な値のものを抽出して表示している。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ruby -v
ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-linux]
$ ruby benchmark.rb
      user     system      total        real
  0.730000   0.040000   0.770000 (  0.762640)
  0.740000   0.020000   0.760000 (  0.766370)
  0.800000   0.020000   0.820000 (  0.824205)

$ ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
$ ruby benchmark.rb
      user     system      total        real
  0.800000   0.070000   0.870000 (  0.877308)
  0.820000   0.010000   0.830000 (  0.823678)
  0.930000   0.000000   0.930000 (  0.925303)

Ruby 2.0.0-p0 の方が若干遅くなっているように見える。(たまたま階乗計算だったからなのかも知れませんが、詳細は未確認。)
※Ruby 2.0.0-p0 のインストール直前に 1.9.3-p392 でもベンチマークをとっておけばよかったと後悔。

6. 参考サイト

ソースビルドについての参考ではなく、 Ruby 2.0.0 リリースについて参考にしたサイト。


いつものように、特に問題なくインストールできました。
後は、既存のスクリプトが正常に動作するかを確認するだけです。
問題なければ、または、問題があっても解決策を見出だせるようになれば、サーバ環境へも Ruby 2.0.0 を導入していこうかと考えている次第です。

色々と新機能が搭載されていますが、当方は、デフォルトエンコードが UTF-8 になったり、 require が高速になったり、 __dir__ が使えるようになったり、キーワード引数が使えるようになったり、という機能が特に嬉しい部分であります。

以上。

Comments