2009-12-30 4 views
31

Кто-нибудь знает, как я могу сказать capistrano, чтобы использовать мою версию по умолчанию для rubi для моего сервера по умолчанию, на который я нажимаю. Он настаивает на использовании версии системы.Как настроить capistrano для использования моей версии rvm Ruby

Возможно ли это?

+2

Я не прикладывая это в ответ, потому что я надеюсь, кто-то еще * действительно * знает, как это сделать, но это, кажется, от моего быстрого исследования вам нужно будет изменить переменную 'PATH', чтобы включить путь к вашему рубину RVM до значения по умолчанию: http://kete.net.nz/documentation/topics/show/240-configuring-sudo-path-in-capistrano -deployments –

ответ

10

rvm-capistrano gem это лучший способ пойти.

Link to the official detailed usage of that gem. Из того, что я предполагаю, что это будет получить локальную версию Ruby:

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

Я думаю, что более официальным способом является 'set: rvm_ruby_string,: local' –

+2

В capistrano3, используя [capistrano-rvm] (https://github.com/capistrano/rvm), используйте что-то вроде: ' set: rvm_ruby_version, «JRuby-1.7.13'' – oozzal

36

У вас есть два варианта:

  1. Включить .ssh переменные окружения, используя опцию PermitUserEnvironment в вашем файле конфигурации SSH
  2. Используйте Capistrano :default_environment установки

Для второго варианта, просто добавьте следующую строку в файле 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' 
} 

Для получения точных данных см. cat ~/.rvm/default

+2

ваш ответ настолько близок, что я просто отредактирую его так, чтобы его было правильно ... –

+0

Я думаю, что первая настройка PATH должна быть «path/to/.rvm/rubies/ree-1.8.7' В моей установке RVM используется 'rubies' в любом случае как каталог, в котором ruby ​​фактически не указан – brad

+5

' rvm info' доставит вам все правильные пути и т. д. – Todd

21

Если РВМ версия Недавняя на оба разработке и производство машин добавить к вашему 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

Для чего это имеет значение, если rvm находится на моей машине dev? Разве это не имеет значения, только на производстве? – Hortitude

Смежные вопросы