如何解决“您的捆绑包仅支持平台 ["x86-mingw32"] 但您的本地平台是 ["ruby", "x86_64-linux"]"
Posted
技术标签:
【中文标题】如何解决“您的捆绑包仅支持平台 ["x86-mingw32"] 但您的本地平台是 ["ruby", "x86_64-linux"]"【英文标题】:How can I resolve "Your bundle only supports platforms ["x86-mingw32"] but your local platforms are ["ruby", "x86_64-linux"]" 【发布时间】:2017-09-11 18:50:01 【问题描述】:我正在 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 的 gem 放在 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 看起来是一样的。
这是我完整的Gemfile 和Gemfile.lock。
我可以通过从 git 中删除 Gemfile.lock 文件来暂时解决此问题,但这不是最佳做法。无论如何,我可以提交我的 Gemfile.lock 文件并继续在我的 Windows 机器上开发吗?
【问题讨论】:
【参考方案1】:对于 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
走向成功。
【讨论】:
您提到的答案对我不起作用,所以我发布了使我的应用程序正常工作的确切原因。我还需要编辑平台列表@colidyre 这行得通,我不需要运行你提到的两个命令。【参考方案2】:在命令行运行以下两条命令:
bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux
这将在 Gemfile.lock 中添加两个平台
我在部署到谷歌云时遇到了同样的错误。但是运行这两个命令后,添加了 ruby 和 x86_64-linux,问题就解决了。
【讨论】:
以上是关于如何解决“您的捆绑包仅支持平台 ["x86-mingw32"] 但您的本地平台是 ["ruby", "x86_64-linux"]"的主要内容,如果未能解决你的问题,请参考以下文章