Как разрешить предупреждение поставщика обновлений в рельсах при развертывании на геройку?

Как мне решить следующее предупреждение? Я обновил мою рубиновую версию до версии 2.3.1 и версию rails до 4.2.6. Я получаю это предупреждение, когда я нажимаю свое приложение на герою.

remote:        Cleaning up the bundler cache.
remote:        Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        Removing mime-types-data (3.2016.0221)

Я удалил Gemfile.lock и выполнил установку пакета, а также попытался обновить пакет, но предупреждение никогда не исчезает.

[email protected]:~/workspace/converse (master) $ gem install bundler
Successfully installed bundler-1.12.4
1 gem installed
[email protected]:~/workspace/converse (master) $

Ответы

Ответ 1

Так что он жалуется, что версия bundler, установленная на heroku, старше версии, которую вы использовали для создания Gemfile.lock на вашей машине dev.

Вероятно, вы можете просто игнорировать предупреждение - в большинстве случаев установка со слегка устаревшей версией связки, чем вы использовали для создания Gemfile.lock, просто прекрасна.

Компилятор

недавно добавил запись версии bundler, используемой в Gemfile.lock, а затем последующее предупреждение, поскольку в некоторых случаях новая функция, добавленная в новую версию bundler, могла быть использована для создания Gemfile.lock, так что установка с более старой версией может работать неправильно. Поэтому иногда это может быть проблемой. Хотя обычно этого не будет.

Не похоже, что вы можете установить герою с другой версией bundler.

Если вы хотите, чтобы предупреждение исчезло, вы можете вместо этого использовать ту же версию локатора, которая используется героем. Немного сложно выяснить, какую версию использует наборщик герою - было бы неплохо, если бы эта предупредительная линия на самом деле говорила вам о двух разных версиях связующего! Но это не так.

Этот файл поддержки heroku предполагает, что heroku использует bundler 1.11.2. (Прямо сейчас, это может измениться в будущем!). Из вашего журнала видно, что вы используете 1.12.4. Если вы хотите использовать 1.11.2 вместо этого, чтобы избежать предупреждения, удалите все версии пакета, установленные в вашей системе:

 gem uninstall bundler

Затем установите 1.11.2 в частности:

 gem install bundler -v 1.11.2

В общем случае, когда вы используете команду bundle, она будет использовать самую последнюю версию, установленную в вашей системе, поэтому, чтобы убедиться, что вы всегда используете 1.11.2, убедитесь, что последняя версия установлена ​​в вашей системе и никогда не устанавливайте более позднюю версию.

Затем вам нужно восстановить ваш Gemfile.lock, чтобы он сказал, что он был связан с 1.11.2, чтобы больше не получать предупреждение. Это своего рода боль, проще всего было бы отредактировать Gemfile.lock вручную, а затем в будущем только использовать bundler 1.11.2.

Чтобы использовать bundler 1.11.2, даже если вы хотите, чтобы в вашей системе были установлены более поздние версии bundler, каждый раз, когда вы делаете bundle install или bundle update (для приложения, которое будет развернуто в heroku), вы можете сделать это как:

 bundle _1.11.2_ install

и т.д.. Это скажет rubygems запустить команду установки пакета с версией пакета 1.11.2, а затем эта версия будет записана в Gemfile.lock, и вы не получите предупреждение.

Это немного беспорядок. Многие разработчики, вероятно, просто игнорируют предупреждение. Обычно это нормально.