Obbiettivo

Installare su CentOS 6.x la versione 1.9.x del linguaggio di programmazione Ruby.

Scenario

  • Server Linux: CentOS 6.5 (x86_64)
  • Repo Ruby: ruby-1.8.7.352-13.el6.x86_64.rpm
  • New Ruby: ruby-1.9.3p545-1.el6.x86_64.rpm

Collegarsi con utenza root alla shell/terminale ed eseguire i seguenti comandi:

# Creazione ambiente per la compilazione del pacchetto rpm
mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

# Download ultima versione Ruby e file spec per la compilazione
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p545.tar.gz -P rpmbuild/SOURCES
wget https://raw.github.com/imeyer/ruby-1.9.3-rpm/master/ruby19.spec -P rpmbuild/SPECS

# Modificare file spec per la versione appena scaricata du ruby (1.9.3-p545)
editare il file rpmbuild/SPECS/ruby19.spec e modificare la riga
"%define rubyminorver    p484" in "%define rubyminorver    p545"

# Scaricare pacchetti che fanno parte delle dipendenze di Ruby (tramite yum)
yum readline libyaml libyaml-devel readline-devel ncurses ncurses-devel gdbm gdbm-devel \
glibc-devel tcl-devel gcc unzip openssl-devel db4-devel byacc make libffi-devel

# Scaricare, se necessario, il pacchetto per compilare gli rpms - rpm-build -
yum rpm-build

# Eeseguire rpm-build ed attendere la fine della compilazione...
# questa tempistica varierà dalle prestrazioni della propria macchina
rpmbuild -bb rpmbuild/SPECS/ruby19.spec

# Conclusa la compilazione, installare il pacchetto rpm 
# (sostituire x86_64 con i386/i586/i686/ in caso di sistema a 32bit)
rpm -Uvh rpmbuild/RPMS/x86_64/ruby-1.9.3p545-1.el6.x86_64.rpm 

# Eseguire Ruby per visualizzare il numero versione
[root@rubytest ~]# ruby -v
ruby 1.9.3p545 (2014-02-24 revision 45159) [x86_64-linux]

Se tutto è andato a buon fine salvarsi il pacchetto rpm ed eliminare la directory rpmbuild precedentemente creata.