2010-09-14 9 views
9

Estoy realmente confundido por las explicaciones dadas en el sitio web de RVM. La relación entre los diferentes intérpretes de rubí y las gemas no me resulta clara. Según yo, es como esto -¿Cómo administrar múltiples gemas y versiones ruby ​​con RVM?

  1. mi cuenta en mi Mac tiene una RVM
  2. Eso RVM instala y administra conjunto de diferentes versiones de intérpretes de rubí.
  3. cada versión ruby ​​tiene un conjunto de gemas.

Estoy haciendo las cosas claras ... Se agradecen más explicaciones. Estoy en posición de trabajar (Ruby 1.8.7 + Rails 2.3.8 y sus dependencias) y (Ruby 1.9.2 y Rails 3.0 y sus dependencias) ...

Si alguien está bien versado en el manejo muchas versiones de rubí y gemsets con la ayuda de RVM, por favor me explique ... gracias por la ayuda

Respuesta

17

Así es como me gusta hacerlo ...

  1. Instalar un rubí con RVM
  2. Cambiar a/usar ese rubí
  3. Crear un gemset para un proyecto
  4. Cambiar a/uso que gemset
  5. Instalar gemas necesitan
  6. crear un alias que apunta a mi rubí elegido & gemset
  7. cambio a/uso que el nuevo alias (de nuevo, asociado w/un proyecto)

Haga esto tantas veces como sea necesario para sus diferentes proyectos que desea mantener separados unos de otros.

Ejemplo:

$ rvm install ruby-1.9.2 
... 
$ rvm list 

rvm rubies 

=> ree-1.8.7-head [ i386 ] 
    ruby-1.9.2-head [ i386 ] 
    ruby-1.9.2-preview3 [ i386 ] 

$ rvm use ruby-1.9.2-preview3 

info: Using ruby 1.9.2 preview3 
$ rvm gemset create my_project 

info: Gemset 'my_project' created. 
rvm gemset use my_project 

info: Now using gemset 'my_project' 
$ gem install httparty 
When you HTTParty, you must party hard! 
Successfully installed crack-0.1.8 
Successfully installed httparty-0.6.1 
2 gems installed 
$ rvm alias create my_project [email protected]_project 

info: Creating alias my_project for [email protected]_project. 

info: Recording alias my_project for [email protected]_project. 
$ rvm use my_project 

info: Using ruby 1.9.2 preview3 with gemset my_project 
$ .... 

Ahora tienen un entorno completo dedicado a un proyecto en particular. Esto es genial porque puedo experimentar con todo tipo de gemas/versiones diferentes sin tener que preocuparme por pisotear otros proyectos que tienen requisitos muy específicos.

¡Buena suerte!

+0

si voy y trabajo en un gemset diferente, esas gemas que están instaladas en mi sistema o aquellos que están instalados en otras gemas no están disponibles ... ¿verdad? – Anand

+0

Gracias a todos, Brian - Entiendo completamente ahora - el flujo de trabajo y el concepto gemset ... muchas gracias de nuevo – Anand

+0

Me alegro de que haya ayudado. Me tomó un poco 'obtenerlo' también. Ahora, no puedo vivir sin eso ... Lo que me recuerda, probablemente debería ir a donar al proyecto RVM ... – Brian

1

Para agregar a la respuesta anterior de Brian, también puede usar los archivos .rvmrc para cambiar dinámicamente las gemas al ingresar nuevos directorios de proyectos.

sólo tiene que ejecutar el siguiente:

rvm rvmrc create [email protected]_project 

Esto ayudará a detener la confusión que tuve cuando se cambia y olvidarse de cambiar gemsets

ACTUALIZACIÓN archivos .rvmrc están en proceso de ser descendido de el archivo .ruby-version más reciente ver discusión aquí: https://gist.github.com/fnichol/1912050

Cuestiones relacionadas