Rails 3 "bundle install" в развертывании Capistrano - но как очистить? - PullRequest
1 голос
/ 15 ноября 2011

После долгого просроченного чтения документов бандера я понимаю, почему это замечательно по сравнению с ручной установкой gem.

Но это пришло ко мне (и другим) только недавно, и теперь у нас гибридная среда. Наши машины для разработки в основном в порядке. Но когда мы внедряемся в производство, Bundler приказывает Capistrano поместить камни в shared/bundle/gems, что имеет смысл. Но мы все еще вручную установили гемы в обычное местоположение .rvm.

Итак, теперь мы знаем, что не нужно использовать «gem install» в производственной среде, но мы имеем дело с несоответствиями версий, когда запускаем задачи Rake напрямую. Я думаю, что мы можем использовать «bundle exec rake foo: bar» для принудительного корректного поведения. Но сейчас у нас есть куча устаревших драгоценных камней:

  • Устаревшие самоцветы, установленные Bundler, и
  • Драгоценные камни, которые мы установили вручную, используя gem install

Я хотел бы получить вещи нетронутыми. Есть ли причина, по которой я не должен использовать gem cleanup?

Надеюсь, это не слишком запутанно: -)

Заранее спасибо.

1 Ответ

1 голос
/ 15 ноября 2011

gem cleanup сохранит последнюю версию всех драгоценных камней и удалит более старые версии. Я думаю, что вы хотите это:

  1. (Необязательно) создайте набор гемов RVM для вашего проекта. (Мне нравится это делать; некоторые люди полностью полагаются на Bundler, который тоже работает.)
  2. Убедитесь, что все ваши зависимости верхнего уровня указаны в вашем Gemfile.
  3. Удалите все драгоценные камни (rvm gemset empty может быть полезным), кроме Bundler.
  4. bundle install
  5. Запустите все с bundle exec с этого момента.
...