17

我正在 Windows 机器上构建 Rails 站点,但是当我签入我的 Gemfile.lock 时,我在 Travis 构建中收到以下错误:

Your bundle only supports platforms ["x86-mingw32"] but your local platforms are ["ruby", "x86_64-linux"], and there's no compatible match between those two

列表

这是完整的日志:https ://travis-ci.org/bikebike/BikeBike/builds/222395810#L654

我查看了我的 Gemfile.lock 并指出:

PLATFORMS
  x86-mingw32

这似乎是问题的一部分。我尝试将任何特定于 Windows 的宝石放在一个platforms块中:

platforms 'mswin', 'mingw', 'mswin64', 'x64_mingw' do
  gem 'tzinfo-data'

  group :test do
    gem 'wdm', '>= 0.1.0'
    gem 'win32console', require: false
  end
end

但是 Gemfile.lock 看起来是一样的。

这是我完整的GemfileGemfile.lock

我可以通过从 git 中删除 Gemfile.lock 文件来暂时解决这个问题,但这不是最佳实践。无论如何,我可以提交我的 Gemfile.lock 文件并继续在我的 Windows 机器上开发吗?

4

2 回答 2

40

在命令行中运行以下两条命令:

bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux

这将在 Gemfile.lock 中添加两个平台

部署到谷歌云时我遇到了同样的错误。但是在运行这两个命令后,添加了 ruby​​ 和 x86_64-linux 并且问题得到了解决。

于 2017-06-04T02:50:35.033 回答
2

对于 Ruby 2.5.1,我在 VPS 上解决了这个问题,方法是将错误消息中提到的平台添加到平台列表部分gemfile.lock

PLATFORMS
  x86-mingw32
  ruby 
  x86_64-linux

只有这样,从应用程序的目录运行以下命令(如taz's answer中所示)

bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux

导致成功。

于 2018-09-07T09:23:32.177 回答