如何配置capistrano以使用我的rvm版本的Ruby

时间:2009-12-30 06:58:40

标签: ruby capistrano rvm

是否有人知道如何告诉capistrano在我推送的服务器上使用我的默认rvm版本的ruby。它坚持使用系统版本。

甚至可能吗?

6 个答案:

答案 0 :(得分:36)

您有两种选择:

  1. 使用ssh配置文件中的PermitUserEnvironment选项启用.ssh环境变量
  2. 使用capistrano :default_environment设置
  3. 对于第二个选项,只需在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插件集成”看起来像是赢家。

http://rvm.io/deployment/

答案 4 :(得分:0)

我发现最简单的方法是添加所需的版本。只需添加

ruby-2.5.0

字符串(或所需的版本)到根文件夹中的.ruby-version。无需配置deploy.rb或一些相当黑的解决方案。

答案 5 :(得分:0)

对于rbenv,不要忘记在set :rbenv_ruby, "3.0.0" 中更改Capfile :)