34 votes

Comment configurer capistrano pour utiliser ma version rvm de Ruby

Est-ce que quelqu'un sait comment je peux dire à capistrano d'utiliser ma version de ruby par défaut pour le serveur sur lequel je pousse. Il insiste sur l'utilisation de la version du système.

Est-ce même possible?

37voto

Simone Carletti Points 77653

Vous avez deux options:

  1. Activer les variables d'environnement .ssh à l'aide de l'option PermitUserEnvironment dans votre fichier de configuration ssh
  2. Utilisez le paramètre capistrano :default_environment

Pour la deuxième option, ajoutez simplement la ligne suivante dans votre fichier 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' 
}
 

Pour obtenir des emplacements précis, consultez cat ~/.rvm/default

23voto

acts-human Points 188

Si votre version de RVM est récente sur les machines de développement et de production, ajoutez ceci à votre deploy.rb:

 set :rvm_ruby_string, '1.9.2@yourapp' # you probably have this already
set :rvm_type, :user # this is the money config, it defaults to :system
 

10voto

KendallB Points 539

La gemme rvm-capistrano est la meilleure voie à suivre.

Lien vers l'utilisation officielle officielle de cette gemme . Je suppose que cela va donner la version locale de Ruby:

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

7voto

Matt Scilipoti Points 410

Voir http://rvm.io/integration/capistrano/ . "L'intégration via le plugin rvm capistrano" a l'air d'être un gagnant.

Et http://rvm.io/deployment/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X