Почему Heroku не примет мой Gemfile.lock в Windows? - PullRequest
12 голосов
/ 10 мая 2011

У меня есть приложение rails, которое я развернул на Heroku. Я использую несколько разных машин, и я заметил, что когда я добавляю новые зависимости (так что Gemfile.lock перестраивается) и выполняю bundle install на моем компьютере с Windows дома, push to 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 находится под управлением версией, но Heroku, по-видимому, предпочитает игнорировать его, поскольку он создан в Windows, а затем жалуется, что его не хватает секунд спустя. Почему это происходит? И как я могу это решить?

Ответы [ 5 ]

24 голосов
/ 25 июля 2011

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

PLATFORMS
  x86-mingw32

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

9 голосов
/ 11 мая 2011

Как и в случае с матовым комментарием выше:

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

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

4 голосов
/ 02 апреля 2012

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

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

0 голосов
/ 27 июня 2011

Только что поборолся с этой проблемой некоторое время.

Я урезал свой гемфайл обратно до рельсов, и проблема все еще была.Затем, думая, что heroku потребовал обновления гема heroku сегодня, я посмотрел ближе на изменения heroku.

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

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

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

0 голосов
/ 11 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...