Capistrano: используйте Bundle Gems из стандартного Gem-Home - PullRequest
3 голосов
/ 26 января 2011

При развертывании с Capistrano я хочу использовать установленные гемы вместо их установки в vendor.

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'
}

Мои драгоценные камни находятся в /some_path/.gem/gems, корзина: /some_path/.gem/bin.

Ответы [ 4 ]

3 голосов
/ 12 июня 2011

Если вы делаете

require 'bundler/capistrano'

Поместите это в deploy.rb, чтобы установить --path arg установки пакета:

set :bundle_dir, "/path/to/gems"
3 голосов
/ 08 октября 2011

Вот что у меня есть в config/deploy.rb, чтобы сообщить сборщику, чтобы он устанавливал драгоценные камни в «системные» драгоценные камни:

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)

http://paulgoscicki.com/archives/2011/10/tell-bundler-to-install-gems-globally-when-using-capistrano/

2 голосов
/ 16 марта 2011

Вы можете указать компоновщику, куда должны идти гемы (или, я полагаю), и передать --local для установки из локальных кэшей гемов, а не извлекать из http://rubygems.org

bundle install --local --path='/some_path/.gem
1 голос
/ 13 декабря 2011

Это проявление переключения движка YAML с Syck на Psych и всех несовместимостей, которые он принес.Проблема в том, что теперь вам нужно переустановить все ваши драгоценные камни, потому что все установленные драгоценные камни имеют неправильную спецификацию gemspec.

...