2012-05-07 8 views
6

Estoy tratando de usar capistrano para crear mi rvm gemset.¿cómo puedo hacer que rvm cree mi gemset en el despliegue de Capistrano?

Uso la joya de rvm-capistrano.

Incluso trato explícitamente a crearlo en la configuración, comandos shell Capistrano se parece a esto:

rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '[email protected]' -c 'rvm use [email protected] --create' 

que obviamente un error con el mensaje de error:

Gemset 'vatax' does not exist, 'rvm gemset create vatax' first, or append '--create' 

De hecho me esperaba la gema para ser capaz de crear el gemset para mí, pero si no al menos me gustaría usar un shell que no sea rvm para crear el gemset dentro de capistrano.

Respuesta

5

Esto aún no está soportado en la gema, existe una entrada para añadir soporte para él - https://github.com/wayneeseguin/rvm-capistrano/issues/8

Por ahora se puede utilizar una tarea que se instala rubí, sino que también se encarga de crear gemset, cuando rubí es ya instalado se acaba de crear la gemset:

before 'deploy', 'rvm:install_ruby' 

Más información se puede encontrar en la documentación de RVM: https://rvm.io/integration/capistrano/

+1

Bueno, yo tenía esta línea en mi deploy rb, pero no creó el gemset al usar deploy: cold. Si digo antes 'deploy: update', funciona para ambos deploy: cold y deploy. –

0

Por lo general crear un gemset para cada aplicación despliego, por lo que necesitan para crear múltiples gemsets. Así es como lo hago:

set :application, 'my-application-name' 
set :user, 'my-username' 
run "~#{user}/.rvm/bin/rvm gemset create #{application}" 
Cuestiones relacionadas