我在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看起来是一样的。
这是我的完整Gemfile和Gemfile.lock。
我可以通过从git中删除Gemfile.lock文件来暂时解决这个问题,但这不是最佳做法。无论如何,我可以提交我的Gemfile.lock文件并继续在我的Windows机器上开发吗?
答案 0 :(得分:14)
在命令行上运行以下两个命令:
bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux
这将在Gemfile.lock中添加两个平台
部署到Google云时我遇到了同样的错误。但是在运行这两个命令之后,添加了ruby和x86_64-linux,问题就解决了。
答案 1 :(得分:0)
对于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
通往成功。