Upgrading Ruby on Redhat EL4 for Ruby on Rails Development


We don’t typically use Ruby on Rails in house. Up until recently, I was the dev guy as well as the server guy, the support guy and all the other hats I wear. Since I don’t do Rails development, there was no reason to get it setup. Recently, with the addition of Gary to the b5media team, Rails development became something we do. So I set about configuring the servers for Rails projects (first time for me!) and discovered that Red Hat Enterprise Linux 4 only ships with Ruby 1.8.1. 1.8.2 is needed for Rails.

Nice. The easiest way I found to upgrade to a newer version of Ruby without going through extreme dependency hell, was to follow this really short procedure:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@server ~]# cd /tmp
[root@server /tmp]# wget http://dev.centos.org/centos/4/testing/i386/RPMS/ruby-1.8.5-1.el4.centos.i386.rpm
[root@server /tmp]# wget http://dev.centos.org/centos/4/testing/i386/RPMS/ruby-libs-1.8.5-1.el4.centos.i386.rpm
[root@server tmp]# rpm -e ruby
[root@server tmp]# rpm -Uvh ruby-libs-1.8.5-1.el4.centos.i386.rpm
warning: ruby-libs-1.8.5-1.el4.centos.i386.rpm: V3 DSA signature: NOKEY, key ID 7203f491
Preparing...                ########################################### [100%]
   1:ruby-libs              ########################################### [100%]
[root@server tmp]# rpm -Uvh ruby-1.8.5-1.el4.centos.i386.rpm
warning: ruby-1.8.5-1.el4.centos.i386.rpm: V3 DSA signature: NOKEY, key ID 7203f491
Preparing...                ########################################### [100%]
   1:ruby                   ########################################### [100%]
[root@server tmp]# ruby -v
ruby 1.8.5 (2006-08-25) [i386-linux]
[root@server tmp]#

This routine downloads the ruby libs 1.8.5 and ruby 1.8.5 RPMs from the CentOS testing repository. It then removes the ruby 1.8.1 library (

1
rpm -e

) along with dependencies. This step is done to avoid problems installing the new version.

Pretty standard stuff, but navigating the treacherous waters of RPM and dependencies is something I don’t mind helping someone avoid.