2009-12-30 7 views
31

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

Est-ce encore possible?

+2

Je ne mets pas cela dans une réponse parce que j'espère que quelqu'un d'autre * vraiment * sait comment faire, mais il semble de ma recherche rapide vous devrez modifier la variable 'PATH' pour inclure le chemin vers votre ruby ​​RVM avant celui par défaut: http://kete.net.nz/documentation/topics/show/240-configuring-sudo-path-in-capistrano -deployments –

Répondre

10

Le rvm-capistrano gem est la meilleure façon d'aller.

Link to the official detailed usage of that gem. A partir de ce que je suis devine que ce sera obtenir la version locale de Ruby:

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

Je pense que la façon la plus officielle est 'set: rvm_ruby_string,: local' –

+2

Dans capistrano3, en utilisant [capistrano-rvm] (https://github.com/capistrano/rvm), utilisez quelque chose comme: ' set: rvm_ruby_version, 'jruby-1.7.13' – oozzal

36

Vous avez deux options:

  1. Activez le .ssh des variables d'environnement en utilisant l'option PermitUserEnvironment dans votre fichier de configuration ssh
  2. Utilisez le Capistrano :default_environment réglage

Pour la deuxième option, il suffit d'ajouter 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 les emplacements précis, jetez un oeil à cat ~/.rvm/default

+2

votre réponse est si proche que je vais juste l'éditer donc c'est correct ... –

+0

Je pense que le premier paramètre PATH devrait être 'chemin/vers/.rvm/rubies/ree-1.8.7' Mon installation RVM utilise 'rubies' de toute façon que le répertoire que ruby ​​est effectivement appelé – brad

+5

' rvm info' vous obtiendrez tous les chemins corrects et autres. – Todd

21

Si votre version RVM est récente sur les deux machines de développement et de production Ajouter à votre 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

Pour cela, est-ce important si rvm est sur ma machine dev? Cela ne devrait-il pas seulement avoir de l'importance s'il est sur le machien de production? – Hortitude

Questions connexes