Ruby on rails 为什么赢了';Heroku是否接受Windows中的my Gemfile.lock?

Ruby on rails 为什么赢了';Heroku是否接受Windows中的my Gemfile.lock?,ruby-on-rails,ruby,windows,heroku,Ruby On Rails,Ruby,Windows,Heroku,我在Heroku上部署了一个rails应用程序。我正在使用几种不同的计算机,我注意到当我添加新的依赖项(以便重建Gemfile.lock)并在家中的Windows计算机上进行bundle安装时,推送到Heroku失败,出现以下错误: Unresolved dependencies detected; Installing... Windows Gemfile.lock detected, ignoring it. You have modified your Gemfile i

我在Heroku上部署了一个rails应用程序。我正在使用几种不同的计算机,我注意到当我添加新的依赖项(以便重建
Gemfile.lock
)并在家中的Windows计算机上进行
bundle安装时,推送到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中创建的,然后在几秒钟后抱怨它丢失了。为什么会发生这种情况?我该如何解决呢?

请确保在安装包后将更改提交到
Gemfile.lock
。下一次
推送
到Heroku时,应正确安装新的gems。

如matt在上面所述:

问题是Bundler为Windows创建了不同的
Gemfile.lock
s。唯一的解决方案是在*NIX系统上创建并提交锁文件


我建议创建一个运行的虚拟机,例如-可能使用。您甚至可以准备使用虚拟机,例如。

刚刚解决了这个问题一段时间

我将我的gemfile修剪回rails,但仍然存在问题。然后,考虑到heroku今天要求更新heroku gem,我仔细查看了heroku的变化

看起来1.9.2 ruby“Bambol”堆栈现在是默认的-我的应用程序仍然在1.8.7堆栈上运行。所以我运行了“heroku stack:migrate Bambon-mri-1.9.2”,并将堆栈更新为1.9.2——这不是我想做的事情,但你知道吗,它解决了上述问题

当然,我不想在1.9.2堆栈上,所以我迁移回1.8.7堆栈,再次正确安装。因此,我认为这是一个解决办法——可能是一个过于复杂的办法——但它似乎“刷新”了heroku方面的错误。由于我在本地所做的任何事情(并且我从StackOverflow文章中尝试了很多东西)都没有产生任何效果,所以推送一直失败,如上所述


所以,是的,这解决了它。也不会花太长时间。但是,更多有经验的开发人员可能会发现更好的解决方法

我通过打开Gemfile.lock并删除以下两行来修复我的问题:

PLATFORMS
  x86-mingw32
因此,现在我只需要创建一个脚本,将其捆绑,然后从锁文件中删除。

从:

如果文件的平台部分包含Windows条目, 例如mswinmingw,则会忽略Gemfile.lock文件


与Windows上的CR/LF与*nix有关?也许?从失败推送的输出判断,Heroku似乎故意忽略了它。bundler是否可能选择预编译的windows二进制文件作为依赖项,并将它们列在
Gemfile.lock
?看看“bundler在windows上工作吗?”这里:看起来可能与您的问题有关。
Genfile.lock
已提交。当我在Windows上时,它没有帮助。这个答案没有解决这个问题。真的没有其他方法吗?那太荒谬了。Heroku的人至少应该在他们的文档中有这个。我什么也找不到。非常感谢你的回答,它澄清了一切!我只是有同样的问题,文件中仍然没有任何内容。非常奇怪,这确实让heroku看起来对windows用户使用他们的服务不感兴趣。这就是我不经常使用linux的原因。做事情的方法有一百万种,如果你没有选择正确的方法,那么你就完蛋了。。开发人员之间没有标准。只是又遇到了这个问题。谷歌到处搜索。“没有答案”解决了这个问题——然后在我意识到自己在关注自己的帖子之前,我就浏览了这篇文章!所以,是的,对我来说仍然是一个谜,但这是我能找到的唯一治疗方法,可以对付狡猾的Gemfile.lock合规者…它还值得查找任何潜入你的Gemfile.lock的windows版本的gems。(例如…-x86-mingw32)这个答案是最好的,谢谢你-今天早上挣扎了一个小时,删除这一行效果很好。谢谢杰里米,这就成功了,给你额外的啤酒我的朋友这帮了我。我列出了一个Sqlite3 gem,它是一个mingw版本,幸运的是它可以被删除,因为我没有使用sqlite