パンダのメモ帳

技術系のネタをゆるゆると

CentOS 6.3 に Ruby 1.9.3 をインストールする

CentOS 6.3 に yum を使って Ruby の標準パッケージをインストールする場合、バージョンは1.8系の1.8.7となる。 ところが一部の Ruby 製アプリケーション(ex. Gitlab )では1.9系が求められるケースがあるため、 今回はソースから Ruby の最新版をインストールすることにした。

依存パッケージをインストール

Ruby のコンパイルに必要なパッケージをインストールする(要EPEL)。

[user@localhost ~]$ sudo yum install --enablerepo=epel make gcc zlib-devel openssl-devel readline-devel ncurses-devel gdbm-devel db4-devel libffi-devel tk-devel libyaml-devel

ダウンロード → コンパイル

Ruby のダウンロードのページから1.9系の最新版をダウンロードして解凍、コンパイルする。 2012年12月20日現在の最新版は 1.9.3-p327 だった。

[user@localhost ~]$ cd /usr/local/src
[user@localhost src]$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz
[user@localhost src]$ tar xf ruby-1.9.3-p327.tar.gz
[user@localhost src]$ cd ruby-1.9.3-p327
[user@localhost ruby-1.9.3-p327]$ ./configure --prefix=/usr/local
[user@localhost ruby-1.9.3-p327]$ make

RPM化 → インストール

コンパイルに成功したら checkinstall を使って RPM化してインストールする(checkinstall のインストール手順はこちら)。

[user@localhost ruby-1.9.3-p327]$ sudo checkinstall --fstrans=no
(中略)
**********************************************************************

 Done. The new package has been saved to

 /root/rpmbuild/RPMS/x86_64/ruby-1.9.3-p327-1.x86_64.rpm
 You can install it in your system anytime using: 

      rpm -i ruby-1.9.3-p327-1.x86_64.rpm

**********************************************************************
[user@localhost ruby-1.9.3-p327]$ sudo rpm -ivh --nodeps /root/rpmbuild/RPMS/x86_64/ruby-1.9.3-p327-1.x86_64.rpm

checkinstall のオプションに --fstrans=no を付けないとエラーになる。 また、checkinstall 実行時「それらをパッケージから除外しますか?(yesと答えることをおすすめします) [y]:」に素直に yes と答えると処理が進まなくなる罠がある。no と答えても問題ないのでここは no と答えておく。 さらに rpm のインストール時に --nodeps を指定しないとエラーになるので注意。

参考