Sam*_*ron 32 ruby capistrano rvm
有谁知道我怎么能告诉capistrano在我推动的服务器上使用我的默认rvm版本的ruby.它坚持使用系统版本.
它甚至可能吗?
Sim*_*tti 37
您有两种选择:
PermitUserEnvironmentssh配置文件中的选项启用.ssh环境变量: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'
}
Run Code Online (Sandbox Code Playgroud)
要获得准确的位置,请查看 cat ~/.rvm/default
小智 22
如果你的rvm版本是开发和生产机器上的最新版本,请将其添加到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
Run Code Online (Sandbox Code Playgroud)
Ken*_*llB 10
该rvm-capistrano宝石 是最好的一段路要走.
链接到该宝石的官方详细用法.从那以后我猜这将获得本地版本的Ruby:
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system
Run Code Online (Sandbox Code Playgroud)