Не могли бы вы рассказать мне, в чем разница между:
$Bundle update
и
$Bundle install
Ответ 1
bundle update и bundle install могут все установить драгоценные камни, указанные вами в Gemfile, но отсутствующие в драгоценных камнях.
Но bundle update делает еще одно обновление:
Если у gems, указанных в Gemfile, нет версии, она будет обновлена до любой последней.
Если драгоценные камни, указанные в Gemfile, имеют версию с ~>, она обновится до последней в последней цифре, версии патча.
Например, если у вас есть драгоценный камень в Gemfile
'foo_gem', '~> 2.1.0'
bundle update проверяет, доступна ли более новая версия 2.1.x в облаке. Скажем, ваша текущая версия 2.1.2, а последняя в облаке - 2.1.5, она установит 2.1.5. Но если 2.2.6 является самым новым, он ничего не сделает.
Лучшая практика на мой взгляд
Всегда добавляйте версию к критическим камням, например rails.
В большинстве случаев придерживайтесь bundle install (или bundle, который по умолчанию равен install). Выполняйте bundle update только когда это действительно необходимо, и вы полностью готовы к результату.
Ответ 2
Bundle Update заданные драгоценные камни (все драгоценные камни, если они не указаны), игнорируя ранее установленные драгоценные камни, указанные в Gemfile.lock. В общем, вы должны использовать bundle install для установки одинаковых точных драгоценных камней и версий на машинах.