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を作成します。
今回は--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からインストールした方がいいかなあ。