如何配置 capistrano 以使用我的 rvm 版本的 Ruby
Posted
技术标签:
【中文标题】如何配置 capistrano 以使用我的 rvm 版本的 Ruby【英文标题】:How do I configure capistrano to use my rvm version of Ruby 【发布时间】:2010-12-31 00:44:33 【问题描述】:有谁知道我如何告诉capistrano 在我推送到的服务器上使用我默认的rvm ruby 版本。它坚持使用系统版本。
有可能吗?
【问题讨论】:
我没有把它放在答案中,因为我希望其他人真的知道如何做到这一点,但从我的快速研究看来,您需要更改 @ 987654324@ 变量在默认值之前包含 RVM ruby 的路径:kete.net.nz/documentation/topics/show/… 【参考方案1】:对于 rbenv,不要忘记将 set :rbenv_ruby, "3.0.0"
更改为 Capfile
:)
【讨论】:
【参考方案2】:我发现最简单的方法是添加您想要的版本。只需添加
ruby-2.5.0
字符串(或您想要的版本)到根文件夹中的 .ruby-version 中。无需配置 deploy.rb 或一些相当老套的解决方案。
【讨论】:
【参考方案3】:你有两个选择:
-
使用 ssh 配置文件中的
PermitUserEnvironment
选项启用 .ssh 环境变量
使用 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 ruby
和gem environment
。您可能不需要设置GEM_HOME
。【参考方案4】:
见http://rvm.io/integration/capistrano/。 “通过 rvm capistrano 插件集成”看起来很成功。
还有http://rvm.io/deployment/
【讨论】:
+1 页面rvm.io/integration/capistrano 和rvm-capistrano
gem 的使用【参考方案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 有什么关系?不是只有在生产机器上才有关系吗?以上是关于如何配置 capistrano 以使用我的 rvm 版本的 Ruby的主要内容,如果未能解决你的问题,请参考以下文章
Capistrano使用rvm和git进行部署[git release fail]
使用 Capistrano 部署 Rails 5.1 / Webpacker 应用程序
Capistrano 3:运行自定义 shell 命令时无法识别捆绑器