CentOS用にRubyのRPMを作った

CentOSYumリポジトリにあるRubyは古過ぎて、gemの依存で引っかかる事が多い。
だから自分でCentOS5用のRPM作った。
 
現在安定版とされている2つのバージョンのRubyと、最新のRubyGems
ruby-1.8.7.p334-1.i386.rpm
ruby-1.9.2.p180-1.i386.rpm
rubygems-1.7.2-1.i386.rpm
 

Yumでインストール

リポジトリ追加
cat <<-'YUMREPOSITORY' > /etc/yum.repos.d/eth0jp.repo
	[eth0jp]
	name=eth0jp repository
	baseurl=http://eth0jp-repo.appspot.com/repo/centos/$releasever/$basearch/
	enabled=0
	gpgcheck=0
YUMREPOSITORY

 

RubyRubyGemsインストール
# ruby
yum -y install --disablerepo='*' --enablerepo=eth0jp ruby-1.8.7.p334-1

# gems
yum -y install --disablerepo='*' --enablerepo=eth0jp rubygems

# rails
gem install rails --include-dependencies -v=2.3.11

# passenger dependencies
yum -y install gcc gcc-c++ curl-devel openssl-devel zlib-devel httpd-devel

# passenger
gem install passenger -v=2.2.15
yes '' | passenger-install-apache2-module 

echo 'LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/bin/ruby
' > /etc/httpd/conf.d/mod_passenger.conf

 

ruby-1.9.2.p180-1の場合

ruby-1.9.2.p180-1.i386.rpmにはgemコマンドが既に入っている。
rubygemsyumで入れず、以下コマンドで最新にアップデートすればOK。

gem update --system

 

注意点

RPMの依存は何も設定していない。
普通の最小構成のCentOS5.5で確認しているけど、1CDのCentOSとかだと何か足りないパッケージがあるかも?
今のところ問題なく動いているけれど、使用は自己責任で。
 

環境

[web@labo ~]$ cat /etc/redhat-release 
CentOS release 5.5 (Final)
[web@labo ~]$ uname -i
i386
[web@labo ~]$ uname -r
2.6.18-194.el5xen
[web@labo ~]$ ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux]
[web@labo ~]$ gem -v
1.7.2
[web@labo ~]$ rails -v
Rails 2.3.11

 
eth0jp Yum repository
http://eth0jp-repo.appspot.com/
 

2011-04-20 06:22:09

ビルドし直した。
prefixをデフォルト(/usr/local)から/usrに変更。
railsの./script/consoleでエラーが出たので、readline-develを入れてからビルド。

./configure --enable-shared --prefix=/usr