2009-12-30 20 views
31

¿Alguien sabe cómo puedo decir capistrano para usar mi versión predeterminada de rvm de ruby ​​para en el servidor al que estoy presionando. Insiste en usar la versión del sistema.¿Cómo configuro capistrano para usar mi versión rvm de Ruby

¿Es posible?

+2

No estoy poniendo esto en una respuesta porque estoy esperando que alguien más * realmente * sabe cómo hacer esto, pero parece de mi investigación rápida deberá modificar la variable 'PATH' para incluir la ruta a su ruby ​​RVM antes de la predeterminada: http://kete.net.nz/documentation/topics/show/240-configuring-sudo-path-in-capistrano -deployments –

Respuesta

10

El rvm-capistrano gem es el mejor camino a seguir.

Link to the official detailed usage of that gem. Desde que estoy adivinando esto hará que la versión local de Rubí:

set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system 
+3

Creo que la forma más oficial es 'set: rvm_ruby_string,: local' –

+2

En capistrano3, usando [capistrano-rvm] (https://github.com/capistrano/rvm), use algo como: ' set: rvm_ruby_version, 'jruby-1.7.13'' – oozzal

36

tiene dos opciones:

  1. Habilite .ssh variables de entorno usando la opción PermitUserEnvironment en el archivo de configuración de ssh
  2. Uso del Capistrano :default_environment establecer

Para la segunda opción, sólo tiene que añadir la siguiente línea en su archivo deploy.rb

set :default_environment, { 
    'PATH' => "/path/to/.rvm/ree-1.8.7-2009.10/bin:/path/to/.rvm/gems/ree/1.8.7/bin:/path/to/.rvm/bin:$PATH", 
    'RUBY_VERSION' => 'ruby 1.8.7', 
    'GEM_HOME' => '/path/to/.rvm/gems/ree/1.8.7', 
    'GEM_PATH' => '/path/to/.rvm/gems/ree/1.8.7' 
} 

Para obtener las ubicaciones precisas, consulte cat ~/.rvm/default

+2

tu respuesta está tan cerca que solo la editaré para que sea correcta ... –

+0

Creo que la primera configuración de RUTA debería ser 'ruta/a/.rvm/rubies/ree-1.8.7' Mi instalación de RVM usa 'rubies' de todos modos, ya que el directorio que ruby ​​en realidad tiene el dominio – brad

+5

' rvm info' le mostrará todas las rutas correctas y demás. – Todd

21

Si su versión RVM es reciente en las dos máquinas de desarrollo y producción agregar esto a su deploy.rb:

set :rvm_ruby_string, '[email protected]' # you probably have this already 
set :rvm_type, :user # this is the money config, it defaults to :system 
+3

Para esto ¿por qué importa si rvm está en mi máquina de desarrollo? ¿No debería importar si está en la producción machien? – Hortitude

Cuestiones relacionadas