Voy a explicar cómo tengo montadas varias versiones de Ruby en Xampp para hacer uso por ejemplo de varias versiones de Redmine sobre la misma instalación de Xampp y motor de base de datos MySQL.
Lo primero que hay que hacer es instalar las versiones de Ruby dentro de la carpeta Xampp. En este artículo donde explico cómo instalar Redmine podéis consultar los detalles.
Tenemos que tener incluida en la variable de entorno PATH la ruta a la versión de Ruby que vayamos a utilizar en ese momento. Por ejemplo:
D:\xampp\ruby21\bin
Dentro de Xampp podemos tener todas las versiones de Ruby que queramos. En mi caso he instalado dos creando una carpeta para cada una de ellas:
d:\xampp
d:\xampp\ruby187
d:\xampp\ruby21
Después en cada entorno de Redmine publicado en la carpeta HTDOCS de Xampp me he creado un fichero BAT para arrancar el servidor de Ruby de ese Redmine en cuestión. El contenido del fichero BAT es muy simple, pero lo tengo así para no tener que recordarlo cada vez que quiera arrancarlo:
bundle exec rails server webrick -e production
Una mejora sería añadir en el BAT la creación de la variable de entorno donde se indica la versión de Ruby a utilizar. Intenté su implementación pero no me funcionaba del todo bien. De todas maneras, editar la variable manualmente no requiere mucho esfuerzo y no es difícil.
Después de modificar la variable de entorno con la ruta del Ruby que queramos utilizar ejecutamos nuestro BAT para arrancar el servidor de Ruby:
Todo esto siempre y cuando tengamos levantado el MySQL en nuestro Xampp. De esta manera podremos trabajar con aplicaciones que tiren de diferentes versiones de Ruby en un momento dado bajo un mismo servidor.