電柱日報

日々の由無し事

さくらのVPSにRuby1.9.1を導入

yumで導入できるrubyは1.8.5だったりするので,1.9系を利用するためにソースからのコンパイルを行ないました。
一般的な手順(configure,make,make install)で何のエラーも起きずrubyコマンドはインストールされ,実際に使えるようになるんですが,なぜかzlib拡張ライブラリがインストールされず,gem等を実行する際問題が起きてしまうようです。
色々と調べた結果,VC++での事例ですが参考になりそうな記事が見つかりました。
基本的には

  • Ruby1.9コンパイル時,zlibのライブラリとヘッダがパス上に存在しないと,zlib拡張ライブラリがインストールされない
  • そもそも,VPSのデフォルト環境ではzlibのヘッダファイル(zlib.h)が存在しない

ということの様で,解決策としては

  • yumで zlib-devel パッケージをインストールする
  • LIB,INCLUDE環境変数を設定する

となります。
最終的に以下のような手順*1Ruby1.9.1p429のインストールが無事完了したような次第。

○zlibの開発用パッケージをインストール(ヘッダファイル用)
 [root@www****u ~]# yum install zlib-devel
○rubyユーザ作成,ロック((通常のログイン不可,必要に応じてrootからsuする))
 [root@www****u ~]# useradd ruby
 [root@www****u ~]# usermod -L ruby
○rubyユーザにスイッチ
 [root@www****u ~]# su - ruby
○zlibライブラリ(libz.so.*)があるディレクトリを環境変数に定義
 [root@www****u ~]# export LIB=/usr/lib
○zlibのヘッダファイル(zlib.h)があるディレクトリを環境変数に定義
 [root@www****u ~]# export INCLUDE=/usr/include
○ソース展開用ディレクトリ作成,移動
 [ruby@www****u ~]$ mkdir src
 [ruby@www****u ~]$ cd src
○Rubyの最新版ソースを取得(2010/7/17時点),展開,移動
 [ruby@www****u src]$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p429.tar.gz
 [ruby@www****u src]$ tar zxvf ruby-1.9.1-p429.tar.gz
 [ruby@www****u src]$ cd ruby-1.9.1-p429
○configure,make,install
 [ruby@www****u src]$ ./configure --prefix=/home/ruby
 [ruby@www****u src]$ make
 [ruby@www****u src]$ make test
 [ruby@www****u src]$ make install

あとは,/etc/bashrc を編集して,環境変数PATHに /home/ruby/bin を追加しておけば,どのユーザでログインしても,パスを気にせずrubyコマンドが使えて良い感じです。

*1:色々テストする中で環境がこんがらがった時にRubyだけを綺麗サッパリ消せるよう,ユーザ ruby を作ってそのホーム領域にRuby一式を構築