【问题标题】:How do I configure capistrano to use my rvm version of Ruby如何配置 capistrano 以使用我的 rvm 版本的 Ruby
【发布时间】:2010-12-31 00:44:33
【问题描述】:

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

有可能吗?

【问题讨论】:

  • 我没有把它放在答案中,因为我希望其他人真的知道如何做到这一点,但从我的快速研究看来,您需要更改 @ 987654324@ 变量在默认值之前包含 RVM ruby​​ 的路径:kete.net.nz/documentation/topics/show/…

标签: ruby capistrano rvm


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    ruby-2.5.0

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

    【讨论】:

      【解决方案3】:

      你有两个选择:

      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

      【讨论】:

      • 我认为第一个 PATH 设置应该是 path/to/.rvm/rubies/ree-1.8.7 我的 RVM 安装使用 rubies 作为实际安装 ruby​​ 的目录
      • 谢谢你,我在用头撞墙很久之后才发现这个。
      • 这也适用于使用非标准 ruby​​ 位置的非 rvm 服务器安装(例如安装在/opt 中的 REE)。在这种情况下,要获得正确的路径,请使用which rubygem environment。您可能不需要设置GEM_HOME
      【解决方案4】:

      http://rvm.io/integration/capistrano/。 “通过 rvm capistrano 插件集成”看起来很成功。

      还有http://rvm.io/deployment/

      【讨论】:

      【解决方案5】:

      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
      

      【讨论】:

      • 我觉得比较官方的方式是set :rvm_ruby_string, :local
      • 在 capistrano3 中,使用 capistrano-rvm,使用类似:set :rvm_ruby_version, 'jruby-1.7.13'
      【解决方案6】:

      如果您的 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
      

      【讨论】:

      • 为此,我的开发机器上是否有 rvm 有什么关系?不是只有在生产机器上才有关系吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多