В чем разница между bundle install --deployment и Bundle pack

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

3 ответов


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

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

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

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


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


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