Ruby Capistrano:使用标准宝石之家的捆绑宝石

Ruby Capistrano:使用标准宝石之家的捆绑宝石,ruby,capistrano,bundler,Ruby,Capistrano,Bundler,使用Capistrano进行部署时,我希望使用已安装的gems,而不是将其安装到供应商的中 Capistrano似乎忽略了.gemrc&.bashrc,因此我在deploy.rb中尝试了这一点: require 'bundler/capistrano' set :default_environment, { 'GEM_HOME' => '/some_path/.gem', 'GEM_PATH' => '/some_path/.gem', 'BUNDLE_

使用Capistrano进行部署时,我希望使用已安装的gems,而不是将其安装到供应商的

Capistrano似乎忽略了
.gemrc
&
.bashrc
,因此我在
deploy.rb
中尝试了这一点:

require 'bundler/capistrano'

set :default_environment, {
  'GEM_HOME'     => '/some_path/.gem',
  'GEM_PATH'     => '/some_path/.gem',
  'BUNDLE_PATH'  => '/some_path/.gem'
}

我的gems位于
/some_path/.gem/gems
,bin:
/some_path/.gem/bin
,您可以告诉bundler gems应该去哪里(或者我相信是哪里),并通过--local从本地gem缓存安装,而不是从中获取

如果你正在做

require 'bundler/capistrano'
将其放在deploy.rb中以设置bundle安装的--path arg:

set :bundle_dir, "/path/to/gems"

以下是我在
config/deploy.rb
中告诉bundler将gems安装到“系统”gems中的内容:


这是YAML引擎从Syck切换到Psych的表现,以及它带来的所有不兼容性。问题是,现在您必须重新安装所有gems,因为所有安装的gems都有错误的gempec规范

set :bundle_dir, "/path/to/gems"
require "bundler/capistrano"
set :bundle_dir,     ""         # install into "system" gems
set :bundle_flags,   "--quiet"  # no verbose output
set :bundle_without, []         # bundle all gems (even dev & test)