是否有人知道如何告诉capistrano在我推送的服务器上使用我的默认rvm版本的ruby。它坚持使用系统版本。
甚至可能吗?
答案 0 :(得分:36)
您有两种选择:
PermitUserEnvironment
选项启用.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'
}
要获得准确的位置,请查看cat ~/.rvm/default
答案 1 :(得分:21)
如果您的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
答案 2 :(得分: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 :(得分:7)
见http://rvm.io/integration/capistrano/。 “通过rvm capistrano插件集成”看起来像是赢家。
答案 4 :(得分:0)
我发现最简单的方法是添加所需的版本。只需添加
ruby-2.5.0
字符串(或所需的版本)到根文件夹中的.ruby-version。无需配置deploy.rb或一些相当黑的解决方案。
答案 5 :(得分:0)
对于rbenv,不要忘记在set :rbenv_ruby, "3.0.0"
中更改Capfile
:)