Почему обновление rails gem также обновляет несколько камней, не зависящих от времени выполнения?

#ruby-on-rails #ruby-on-rails-4 #rubygems #bundler

#ruby-on-rails #ruby-on-rails-4 #rubygems #bundler

Вопрос:

Я пытаюсь обновить свой rails 4.2.11 gem до нового патча 4.2.11.1

Когда я запускаю bundle update rails (я изменил версию rails на 4.2.11.1 в моем Gemfile), есть несколько других драгоценных камней, которые являются частью моего приложения, которые также обновляются. Ссылаясь на это, я вижу, что существует десять камней зависимостей, поэтому они обновляются, и это нормально.

Драгоценные камни, которые обновляются до более новой версии, являются :

  • rake 12.3.2 (изначально был 12.3.1),
  • параллельный-ruby 1.1.5 (был 1.1.3),
  • mini_portile2 2.4.0 (был 2.3.0),
  • nokogiri 1.10.1 (был 1.8.5)
  • globalid 0.4.2 (был 0.4.1) )

Примечание: Некоторые из них являются рекурсивными зависимостями, такими как railaities -> rake, но версия, указанная в railties-4.2.11.1, ниже, чем у меня изначально была

Я хочу понять, почему и как они обновляются.

текущие версии: ruby — 2.5.3, rails- 4.2.11, bundler — 1.17.1

Ответ №1:

Согласно документации bundler,https://bundler.io/man/bundle-update.1.html#DESCRIPTION , bundle update игнорирует ваш Gemfile.lock и, следовательно, установит последнюю версию любых зависимостей обновляемого gem (придерживаясь обновляющегося gem .gemspec ).

Если вы не хотите, чтобы обновлялись какие-либо общие зависимости, используйте --conservative опцию. https://bundler.io/man/bundle-update.1.html#OPTIONS

 bundle update rails --conservative