2012-01-16 12 views
26

¿Es posible usar múltiples versiones de rieles usando rbenv (por ejemplo, 2.3 y 3.1)? Esto fue fácil con gemsets en rvm, pero me pregunto cuál es la mejor manera de hacerlo ahora que he cambiado a rbenv (también, estoy buscando una forma de hacerlo sin rbenv-gemset).¿Cómo se usan las versiones de rieles múltiples con rbenv?

+0

Pregunta relacionada: http://stackoverflow.com/questions/9771172/rbenv-surviving-without-gemsets (Me perdí esta pregunta cuando le pregunté a la mía, tal vez por el error tipográfico rbvenv) –

Respuesta

51

no estoy seguro de si tienes una respuesta a esto, pero pensé que ofrecería lo que hice y pareció funcionar.

Una vez que tiene instalado rbenv, y lo usa para instalar una versión de ruby ​​específica, puede instalar varias versiones de rieles para ese ruby.

PASO 1. Instalar cualquier versión (s) de los carriles que desee según la versión de rubí

% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11 

Al utilizar el "RBENV_VERSION = 1.9.2-p290" prefijo en la línea de comandos, que está especificando con qué ruby ​​rbenv debería preocuparse.

Luego, siguiendo con el comando "rbenv exec", puede instalar los rieles. Simplemente use el indicador de versión como en el ejemplo para especificar qué versión desea. No estoy seguro si puede instalar varias versiones en una sola toma, pero solo ejecuto este comando tantas veces como sea necesario para instalar cada versión que deseo.

Nota: Todo esto se gestionará dentro de su directorio rbenv, por lo que es perfectamente seguro y está contenido.

PASO 2. Cree un nuevo proyecto de rieles especificando la versión de rieles que desee.

% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project 

PASO 3. No se olvide de entrar en ese proyecto y establecer la versión local rbenv rubí.

% cd my_project 
% rbenv local 1.9.2-p290 

Ahora, si quieres eliminar este proyecto, que acaba de eliminar de forma normal.

Si desea eliminar/gestionar una versión carriles de gemas rbenv, puede utilizar los comandos regulares joya, justo prefijar su línea de comandos con:

% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command} 

Y, por supuesto, puede eliminar una versión completa de rubí y todas sus cuñas, etc. que se manejan dentro de rbenv con bastante facilidad. Me gusta lo autónomo que es todo.

Espero que esto ayude.

Como referencia, esto es un buen paseo a través de al menos algunas de estas cosas:

http://ascarter.net/2011/09/25/modern-ruby-development.html

+0

gracias por esta respuesta, pero yo ¿No se puede simplemente crear un proyecto de rieles y especificar la versión de rieles dentro del proyecto y luego hacer la instalación del paquete? ¿Puedes explicarme cómo tu respuesta sería una mejor solución? No soy tan experimentado así que sería útil saberlo. gracias – Leahcim

+0

por cierto, una vez que crea el proyecto con ese prefijo, ¿usa ese prefijo para cada comando que hace en el proyecto? prefix + bundle install? prefix + gem install {gem name}, etc. – Leahcim

+0

No, no necesita seguir usando el prefijo. Mi respuesta aquí fue un poco superflua porque RVM es un completo administrador de paquetes (versión de ruby ​​+ rails), y estaba tratando de ilustrar una manera de hacer algo similar con rbenv, que a diferencia de RVM es principalmente un administrador de ruby. El OP preguntaba sobre el uso de versiones de rieles múltiples con rbenv, por lo que estaba describiendo cómo instalar una versión de rieles específica a una versión de ruby ​​específica (de la cual puede instalar múltiples), y luego seleccionar cuál usar al crear un proyecto con ese ruby versión. Esto te daría algo similar a RVM. – Nathan

18

hay un plugin llamado rbenv rbenv-gemset que debe comportarse similar a la rvm gemset -command pero desde rbenv Nunca fue mi intención trabajar así, no lo he intentado.

Normalmente administro versiones de Rails con Bundler como Nathan sugirió en los comentarios de una de las otras respuestas.Creo un Gemfile con mi versión rieles deseada, ejecute bundle install, crear la aplicación Rails, deje que se reemplace el Gemfile y dejar que se haga cargo Bündler:

mkdir my-rails-app 
cd my-rails-app 
echo "source 'https://rubygems.org'" > Gemfile 
echo "gem 'rails', '3.2.17'" >> Gemfile 
bundle install 

bundle exec rails new . --force --skip-bundle 
bundle update 

Si usted desea más detalles, escribí an article on my blog al respecto.

Espero que ayude!

+0

que es un buen artículo. Gracias al paquete – onmyway133

+0

que era la solución que estaba buscando +1 – Qchmqs

Cuestiones relacionadas