Подтвердить что ты не робот

Почему Heroku не примет мой Gemfile.lock в Windows?

У меня есть приложение rails, которое я развертываю на Heroku. Я использую несколько разных машин, и я заметил, что когда я добавляю новые зависимости (так что Gemfile.lock перестраивается) и bundle install на моем компьютере под управлением Windows дома, нажмите на Heroku с ошибкой:

   Unresolved dependencies detected; Installing...
   Windows Gemfile.lock detected, ignoring it.
   You have modified your Gemfile in development but did not check
   the resulting snapshot (Gemfile.lock) into version control
   ...

Gemfile.lock IS находится под управлением версиями, но Heroku, по-видимому, предпочитает игнорировать его с момента его создания в Windows, а затем жалуется, что он потерял несколько секунд спустя. Почему это происходит? И как я могу его решить?

4b9b3361

Ответ 1

Как и матовый, прокомментированный выше:

Проблема заключается в том, что Bundler создает разные Gemfile.lock для Windows. Единственное решение - создать и зафиксировать файл блокировки в системе * NIX.

Я бы предложил создать виртуальную машину, работающую, например. Ubuntu - возможно, используя Virtual Box. Вы даже можете получить готовые к использованию виртуальные машины - например здесь.

Ответ 2

Я установил мою, открыв Gemfile.lock и удалив следующие две строки:

PLATFORMS
  x86-mingw32

Итак, теперь мне просто нужно сделать script, который связывает, а затем удаляет из файла блокировки.

Ответ 3

Из Документы Heroku:

Если раздел платформ вашего Gemfile содержит записи Windows, например mswin или mingw, тогда файл Gemfile.lock будет проигнорирован.

Ответ 4

Просто сражался через эту проблему некоторое время.

Я подрезал свой gemfile обратно до рельсов и все еще имел проблему. Затем, думая, что героику потребовали обновление гейм-героя сегодня, я посмотрел ближе к изменениям герою.

Кажется, что стек бамбука 1.9.2 ruby ​​теперь по умолчанию - мое приложение все еще работает на стек 1.8.7. Поэтому я запустил "стек героя": migrate bamboo-mri-1.9.2 "и обновил стек до 1.9.2 - не то, что я хотел сделать, но вы знаете, что он исправил проблему выше.

Конечно, я не хотел быть в стеке 1.9.2, поэтому я перешел обратно в стек 1.8.7, и все было правильно установлено. Поэтому я думаю, что это обходной путь - и, вероятно, слишком сложный, но он казался "флешем", независимо от того, какая ошибка была героикой. Как ничто, что я сделал локально (и я пробовал много вещей из статей StackOverflow), имел какой-то эффект, нажатие просто не срабатывало, как указано выше.

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

Ответ 5

Удостоверьтесь, что вы вносили изменения в Gemfile.lock после установки пакета. На следующем push в Heroku новые драгоценные камни должны быть установлены правильно.