Instalación de JRuby en Solaris

ruby, rails, sysadmin Deja un comentario

La instalación de JRuby en Solaris es muy sencilla. Para mí, una buena razón para instalar JRuby en Solaris es que podemos instalar un intérprete de Ruby en el directorio de un usuario no privilegiado, es decir, no necesitamos la contraseña de root.


jruby

JRuby requiere una versión reciente del intérprete de Java. Si nuestra máquina tiene una versión como

$ java -version
java version "1.2.2"

no tendremos más remedio que instalar un nuevo JRE (Java Runtime Environment). Los pasos para hacerlo son los siguientes:

  • Descargamos e instalamos el JRE:
$ bash jre-6u3-solaris-sparc.sh
$ export PATH=`pwd`/jre1.6.0_03/bin:$PATH
$ java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)
  • Descargamos e instalamos JRuby:
$ gzcat jruby-bin-1.1b1.tar.gz  tar xf -
$ export PATH=$PATH:$HOME/jruby-1.1b1/bin
$ jruby -v
ruby 1.8.5 (2007-11-01 rev 4842) [sparc-jruby1.1b1]

Y ya está. No hay más pasos. Aunque si tienes Solaris 8 tal vez obtengas el siguiente error:

$ jruby -v
/export/home/username/jruby-1.1b1/bin/jruby: while: command not found
/export/home/username/jruby-1.1b1/bin/jruby: line 119: syntax error near unexpected token `do'
/export/home/username/jruby-1.1b1/bin/jruby: line 119: `do'

Si te ocurre esto la solución es sencilla. Creo que se trata de un bug de la bash 2.03 de Solaris 8, pero no he encontrado información al respecto. El script que lanza JRuby declara dos arrays vacíos:

java_args=()
ruby_args=()

y esto falla con la bash 2.03. Lo bueno es que el workaround es trivial. Los arrays pueden declararse de la siguiente manera:

declare -a java_args                 
declare -a ruby_args

He abierto un issue en el proyecto JRuby.

Un comentario a “Instalación de JRuby en Solaris”

  1. olivier de Meringo dice:

    Thank you so much for the tip regarding bash 2.03 issue, your fix perfectly works.

    Muchas gracias

Deja un comentario