ServersMan@VPS日誌02 - Rubyをソースからインストール

なにはともあれ、スクリプト言語のひとつくらい必要なのです。というわけでRubyをひとつインストールします。最新版を使ってみたいので、ソースコードからに挑戦。バージョンは、先日クリスマスリリースされた1.9.2-p136。


インストールの方針ですが、「/usr/local/ruby-1.9.2以下にインストールし、/usr/local/binにシンボリックリンクを作成する」で行きます。理由は次の3つ。

  • バージョンを切り替えられるようにしたい
  • 難しい設定はしたくない
  • 環境変数をいじると、sudoで実行できない等の弊害がある


まずは事前準備として、C言語コンパイラとzlibのライブラリをインストールします。環境によってはこれ以外にも必要かもしれません。
[2011/01/08:aptではzlib-develではなくzlib1g-devでした。]

$ sudo apt-get install gcc
$ sudo apt-get install zlib1g-dev


いよいよダウンロード。作業場所はどこでもいいですが、今回は/home/(ユーザ名)/srcでやります。

$ cd ~
$ mkdir src
$ cd src
$ wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p136.tar.gz


で、解凍。xzfが.tar.gzファイルを一気に解凍するためのオプション。さらにvを付けると詳細メッセージが表示されます。

$ tar vxzf ruby-1.9.2-p136.tar.gz


解凍したディレクトリに移動。余裕があればREADMEも読みます。

$ cd ruby-1.9.2-p136
$ vi README


./configureコマンドを実行します。

「configure」というシェルスクリプトを以下のように実行することで、ソースファイルをコンパイルする前に、インストール対象となるシステム特有の機能/情報をチェックし、チェック状況を記述したMakefileを作成します。


有効なWikiNameではありません - PukiWiki

今回は--prefixオプションでインストール場所を指定します。

$ ./configure --prefix=/usr/local/ruby-1.9.2


そしてmake。処理に数分かかります。

$ make


make testとmake test-allが通ることを確認します。実際はスレッドとソケットで失敗したのですが、練習なのでスルー。

$ sudo make test
$ sudo make test-all


いよいよインストール。ここでprefixに指定したディレクトリにファイルがコピーされます。/home以外をいじるのでsudoが必要。

$ sudo make install


最後に、/usr/local/binに実行ファイルへのリンクを作成します。rspecなどをインストールした後にもこの作業が必要です。面倒なのでスクリプト化した方がよさそう。
[2010/12/31:-sオプションが抜けていたので追記しました。]

$ sudo ln -s /usr/local/ruby-1.9.2/bin/ruby /usr/local/bin/ruby
$ sudo ln -s /usr/local/ruby-1.9.2/bin/gem /usr/local/bin/gem
$ sudo ln -s /usr/local/ruby-1.9.2/bin/irb /usr/local/bin/irb


動作確認。

$ ruby -v
ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux]

$ gem list
*** LOCAL GEMS ***
・
・
・

$ irb
irb(main):001:0>

以上で終了。いまのところ問題なく動いてますが、テストに失敗してるのが不安なので、サービス運用するときはaptからインストールした方がいいかなあ。