В чем разница между комплектом установки --deployment и комплектом пакета - PullRequest
18 голосов
/ 10 июня 2011

Я знаю, что они оба помещают гемы в ваше приложение в разных местах, но кажется, что bundle install --deployment делает более тщательную работу.Могу ли я просто добавить каталог vendor / bundle, который он создает, в систему контроля версий и все готово?

Ответы [ 3 ]

21 голосов
/ 10 июня 2011

Я использую bundle install --path vendor/bundle в режиме разработки.bundle install --deployment заблокирует ваш Gemfile.lock и не будет обновлять его при изменении Gemfile, поэтому никогда не используйте параметр развертывания в среде разработки.bundle install --no-deployment отключит режим развертывания пакета.Вы можете прочитать этот пост о правильном использовании пакета.

19 голосов
/ 10 июня 2011

Посмотрите описание двух на сайте Бандлера.

Запуск bundle install --deployment должен выполняться в производственной среде, но при запуске будет извлекать драгоценные камни из рубинов. Подробнее здесь под заголовком «Развертывание приложения» с целью указания флага --deployment.

bundle package аналогичен старой команде rake rails:gems:freeze из Rails 2.3. Он захватывает драгоценные камни и упаковывает их в vendor / cache. С сайта бандлера здесь :

Вы можете использовать это, чтобы избежать зависимости на rubygems.org во время развертывания или, если у вас есть частные драгоценные камни, которые не находятся в публичный репозиторий

5 голосов
/ 20 августа 2013

Я довольно подробно объяснил причину флага --deployment mode в своем выступлении на RailsConf 2011. В этом сообщении в блоге содержатся мои заметки к этому выступлению, и (я надеюсь) охватывает все причины, стоящие за- Развертывание работает: http://andre.arko.net/2011/06/11/deploying-with-bundler-notes/

...