2013-05-11 3 views
47

Не могли бы вы сказать мне, Что разница между:

$Bundle update 

и

$Bundle install 

ответ

65

bundle update и bundle install все могут установить драгоценные камни, указанные вами в Gemfile, но отсутствуют в драгоценных камнях.

Но bundle update делает еще одно обновление:

  1. Если драгоценные камни, указанные в Gemfile не версия, это будет обновление до любой последней.
  2. Если драгоценные камни, указанные в Gemfile, имеют версию с ~>, она обновится до последней версии на последней цифре, версии патча.

    Например, если у вас есть драгоценный камень в Gemfile

    'foo_gem', '~> 2.1.0' 
    

    bundle update будет проверять, если новая версия 2.1.x доступна в облаке. Скажем, текущая версия 2.1.2, а последняя в облаке - 2.1.5, она установит 2.1.5. Но если 2.2.6 является самым новым, он ничего не сделает.

Лучше практика по-моему

  1. Всегда добавить версию к критическим самоцветов как rails.

  2. Придерживайтесь bundle install (или bundle, который по умолчанию равен install) в большинстве случаев. Делайте только bundle update, когда это действительно необходимо, и вы полностью готовы к результату.

+0

Итак, как я хорошо понял: , если у меня есть «foo_gem», «~> 2.1.0», основное отличие: комплект обновления - установить версию 2.1. * (Последняя) и комплект установить - установить версию 2.1 .0 – matDobek

+3

@ shuffla90, в этом случае 'bundle install' по-прежнему будет устанавливать последний камень, скажем, 2.1.5, если у вас нет этого драгоценного камня. Но, если у вас уже есть этот камень в 2.1.1, 'bundle install' ничего не сделает. –

+0

получил это, muchos gracias, для вашего времени :) – matDobek

5

Bundle Update s драгоценные камни, указанные (все драгоценные камни, если ничего не указано), игнорируя ранее установленные драгоценные камни, указанные в Gemfile.lock. В общем, вы должны использовать bundle install для установки одинаковых точных драгоценных камней и версий на всех машинах.

+0

И установка пакета может порекомендовать сделать обновление пакета. например bundle install может сказать, для драгоценного камня 'В комплекте в настоящее время blahgem заблокирован на 5.11.1. Попробуйте запустить обновление пакета blahgem' (или просто пакетное обновление). – barlop